BETA, la rivista ipertestuale tecnica
BETA La rivista ipertestuale tecnicaBarra BETA
Sommario Abbonamenti a BETA Redazione Liste/Forum Informazioni Indici BETA La rivista ipertestuale tecnica Collegamento al sito Web
BETA - Tecnologie Web

BETA 2399.6 - Tecnologie Web - La Programmazione CGI in Python - Parte 1 | Parte 2 | Parte 3 | Parte 4 | Parte 5

La Programmazione CGI in Python

Parte II

Marco Buzzo
Collaboratore, BETA

Come iniziare

Non mi propongo di realizzare una trattazione teorica, ma auspico che chiunque legga questo documento sia pronto a realizzare i semplici esempi che verranno proposti per capire meglio i meccanismi che stanno alla base del CGI.

Perché questo sia realizzabile bisogna disporre di un server HTTP; il più conosciuto, diffuso e meglio documentato è sicuramente il web server Apache. Da questo punto in poi presupporrò che disponiate di un Apache di versione almeno 1.1.x. Questo nella sua configurazione di default non dovrebbe avere abilitata l’esecuzione di programmi CGI. I file di configurazione dovrebbero risiedere in una directory tipo /etc/httpd/conf/ e sono tre: httpd.conf, access.conf, srm.conf.

In genere il server viene impostato in modo che la directory root sia /home/httpd/html/; questo significa che l’indirizzo locale http://localhost/ o http://127.0.0.1/ dovrebbe mostrare il file /home/httpd/html/index.html; nel caso dell’Apache questo dovrebbe avere come titolo "It Worked!". A questo punto dobbiamo abilitare l’esecuzione di programmi CGI; abbiamo due possibilità:

  • Limitare l’esecuzione ai soli programmi residenti nella dir /home/httpd/cgi-bin/. Per ottenere questo risultato è necessario modificare il file access.conf e modificare la seguente riga :

<Directory /home/httpd/cgi-bin> Options Indexes FollowSymLinks </Directory>

in

<Directory /home/httpd/cgi-bin> Options FollowSymLinks ExecCGI </Directory>

  • Garantire l’esecuzione a tutti i programmi presenti nelle varie subdir di /home/httpd/html/. Per fare questo è necessario modificare il file acess.conf ed eliminare il cancelletto # in testa alla riga

<Directory /home/httpd/html> Options All </Directory>

Inoltre è necessario aggiungere al file srm.conf la riga:

AddHandler cgi-script .py

A questo punto perché un programma sia universalmente eseguibile, deve poter disporre dei relativi permessi, che possono essere conferiti mediante chmod ugo+rx miofile.py.

Il primo script.

Di solito il primo esempio di programmazione è Hallo World!; ho pensato di mantenere invariata la tradizione; vediamo il listato di ciao.py:

#!/usr/bin/python

def main():

print "Content-type: text/html"

print

print "<TITLE> Hello, World!</TITLE>"

print "Hello, World!"

La prima riga contiene il percorso dell’interprete; in questo modo se abbiamo il permesso di esecuzione, il programma può essere chiamato all’interno della sua dir con ./ciao.py. Se omettiamo la prima riga, il programma continua a girare se richiamato dalla shell, ma solo se invochiamo anche l’interprete: python ciao.py. Ovviamente nel nostro caso sarà il browser a richiamare indirettamente il programma per cui la prima riga è assolutamente necessaria.

La seconda riga definisce la funzione principale main(); le righe che seguono indentate rappresentano il corpo della funzione (per chiarire il significato dell’indentazione nel Python vedi http://web.tiscalinet.it/python/doc/index.html ).

Le righe che seguono iniziano tutte con print e si occupano di stampare il relativo contenuto nello standard output. In questo modo la prima comunica al browser il tipo del contenuto del documento: in questo caso si tratta di text/html. La riga successiva stampa una riga bianca, risultato che si sarebbe potuto ottenere anche con print "Content-Type: text/plain\n\n" usando il relativo carattere di escape.

La porzione di codice che segue fornice dapprima il titolo al documento che visualizzerà il browser, e quindi il contenuto: Hello,World!


Collegamento d'articolo

Parte 1 | Parte 2 | Parte 3 | Parte 4 | Parte 5
Successivo: Parte 3


Articoli correlati

CGI Corner e ss. serie curata da Michele Beltrame
Altri Articoli della stessa Rubrica...

Siti Web

http://www.python.org/
http://web.tiscalinet.it/python
Elenco di siti consigliati da BETA...


Ultima revisione:

Copyright © 1995-1999 BETA, tutti i diritti sono riservati. E' vietata la riproduzione senza autorizzazione dell'editore o dell'autore dentro i termini e le condizioni della Licenza Pubblica BETA (LPB)

BETA La rivista ipertestuale tecnica (http://www.beta.it/beta)email info@beta.it
BETA: Frontespizio | Abbonamenti | Redazione | Liste/Forum | Indici | Guida | Copyright