Python-CGI-Programmierung

高洛峰
Freigeben: 2016-11-23 14:05:53
Original
1228 Leute haben es durchsucht

Was ist CGI?

CGI wird derzeit von NCSA verwaltet. NCSA definiert CGI wie folgt:

CGI (Common Gateway Interface), eine gemeinsame Gateway-Schnittstelle, ist ein Programm, das auf dem läuft Server, wie zum Beispiel: HTTP-Server, der eine Schnittstelle mit Client-HTML-Seiten bereitstellt.

Websurfen

Um besser zu verstehen, wie CGI funktioniert, können wir mit dem Klicken auf einen Link oder eine URL auf einer Webseite beginnen:

1 Der Browser greift auf die URL zu und stellt eine Verbindung zum HTTP-Webserver her.

2. Nach Erhalt der Anforderungsinformationen analysiert der Webserver die URL und prüft, ob die Datei vorhanden ist. Wenn die Datei vorhanden ist, wird der Inhalt der Datei zurückgegeben eine Fehlermeldung.

3. Der Browser empfängt Informationen vom Server und zeigt die empfangene Datei oder Fehlermeldung an.

CGI-Programme können Python-Skripte, PERL-Skripte, SHELL-Skripte, C- oder C-Programme usw. sein.

CGI-Architekturdiagramm

Python-CGI-Programmierung

Webserver-Unterstützung und -Konfiguration

Bevor Sie die CGI-Programmierung durchführen, stellen Sie sicher, dass Ihr Webserver CGI und The unterstützt Der CGI-Handler wurde konfiguriert.

Alle CGI-Programme zur HTTP-Serverausführung werden in einem vorkonfigurierten Verzeichnis gespeichert. Dieses Verzeichnis wird als CGI-Verzeichnis bezeichnet und laut Konvention /var/www/cgi-bin.

Die Erweiterung von CGI-Dateien ist .cgi, und Python kann auch die Erweiterung .py verwenden.

Standardmäßig ist das cgi-bin-Verzeichnis, in dem der Linux-Server für die Ausführung konfiguriert ist, /var/www.

Wenn Sie andere Verzeichnisse zum Ausführen von CGI-Skripten angeben möchten, können Sie die Konfigurationsdatei httpd.conf wie folgt ändern:

AllowOverride None

Optionen ExecCGI

Anordnung erlauben, verweigern

Zulassen von allen

Optionen Alle

< ;/Directory>

Das erste CGI-Programm

Wir verwenden Python, um das erste CGI-Programm zu erstellen, der Dateiname ist hellp.py , Die Datei befindet sich im Verzeichnis /var/www/cgi-bin. Der Inhalt lautet wie folgt:

#!/usr/bin/python

print „Content-type:text/htmlrnrn“

print ''

print '

'

print '

Hello Word - Erstes CGI-Programm'

print ''

print '

'

print '

Hallo Word! Das ist mein erstes CGI-Programm

'

print ''

print ' '

Das obige Programm zeigt beim Zugriff im Browser die folgenden Ergebnisse an:

Hallo Word!

Das hello.py-Skript ist ein einfaches Python-Skript Der Ausgabeinhalt des Skripts ist „Inhaltstyp: text/htmlrnrn“, wird an den Browser gesendet und teilt dem Browser mit, dass der angezeigte Inhaltstyp „text/html“ ist.

HTTP-Header

Der „Content-type: text/htmlrnrn“ im Inhalt der hello.py-Datei ist Teil des HTTP-Headers, der an den Browser gesendet wird, um ihn darüber zu informieren über den Inhaltstyp.

Das Format des HTTP-Headers ist wie folgt:

HTTP-Feldname: Feldinhalt

Zum Beispiel

Inhaltstyp: text/htmlrnrn

Die folgende Tabelle stellt die Informationen vor, die häufig in HTTP-Headern in CGI-Programmen verwendet werden:

Header

Beschreibung

Inhaltstyp: Die angeforderten MIME-Informationen, die der Entität entsprechen. Zum Beispiel: Content-type:text/html

Expires: Date Das Datum und die Uhrzeit, wann die Antwort abläuft

Location: URL Wird verwendet, um den Empfänger zum Speicherort der nicht angeforderten URL umzuleiten um die Anfrage oder Identifizierung abzuschließen Neue Ressource

Zuletzt geändert: Datum Die letzte Änderungszeit der angeforderten Ressource

Inhaltslänge: N Die angeforderte Inhaltslänge

Set- Cookie: String Set Http Cookie

CGI-Umgebungsvariablen

Alle CGI-Programme erhalten die folgenden Umgebungsvariablen, die in CGI-Programmen eine wichtige Rolle spielen:

Variablen Name

Beschreibung

CONTENT_TYPE Der Wert dieser Umgebungsvariablen gibt den MIME-Typ der übergebenen Informationen an. Derzeit lautet die Umgebungsvariable CONTENT_TYPE im Allgemeinen: application/x-www-form-urlencoded, was angibt, dass die Daten aus HTML-Formularen stammen.

CONTENT_LENGTH Wenn die Informationsübertragungsmethode zwischen dem Server und dem CGI-Programm POST ist, ist diese Umgebungsvariable die Anzahl der Bytes gültiger Daten, die aus der Standardeingabe STDIN gelesen werden können. Diese Umgebungsvariable muss beim Lesen der eingegebenen Daten verwendet werden.

HTTP_COOKIE Der COOKIE-Inhalt im Client.

HTTP_USER_AGENT Stellt Client-Browserinformationen einschließlich der Versionsnummer oder anderer proprietärer Daten bereit.

PATH_INFO Der Wert dieser Umgebungsvariablen stellt andere Pfadinformationen unmittelbar nach dem CGI-Programmnamen dar. Es erscheint häufig als Parameter in CGI-Programmen.

QUERY_STRING Wenn die Informationsübertragungsmethode zwischen dem Server und dem CGI-Programm GET ist, sind die übertragenen Informationen der Wert dieser Umgebungsvariablen. Diese Informationen folgen dem CGI-Programmnamen, getrennt durch ein Fragezeichen „?“.

REMOTE_ADDR Der Wert dieser Umgebungsvariablen ist die IP-Adresse des Clients, der die Anfrage sendet, wie oben 192.168.1.67. Dieser Wert ist immer vorhanden. Und es ist die eindeutige Kennung, die der Web-Client dem Webserver bereitstellen muss und die in CGI-Programmen zur Unterscheidung verschiedener Web-Clients verwendet werden kann.

REMOTE_HOST Der Wert dieser Umgebungsvariablen enthält den Hostnamen des Clients, der die CGI-Anfrage gesendet hat. Wenn die Abfrage, die Sie abfragen möchten, nicht unterstützt wird, besteht keine Notwendigkeit, diese Umgebungsvariable zu definieren.

REQUEST_METHOD Stellt die Methode bereit, mit der das Skript aufgerufen wird. Für Skripte, die das HTTP/1.0-Protokoll verwenden, sind nur GET und POST sinnvoll.

SCRIPT_FILENAME Der vollständige Pfad des CGI-Skripts

SCRIPT_NAME Der Name des CGI-Skripts

SERVER_NAME Dies ist der Hostname, Alias ​​oder die IP-Adresse Ihres WEB-Servers.

SERVER_SOFTWARE Der Wert dieser Umgebungsvariablen enthält den Namen und die Versionsnummer des HTTP-Servers, der das CGI-Programm aufruft. Der obige Wert ist beispielsweise Apache/2.2.14 (Unix)

Das Folgende ist ein einfaches CGI-Skript, das die CGI-Umgebungsvariablen ausgibt:

#!/usr/bin/python

import os

print "Content-type: text/htmlrnrn";

print „Environment
“;

for param in os.environ.keys():

print „< ;b> ; s: %s
" % (param, os.environ[param])

GET- und POST-Methoden

Der Browser-Client überträgt Informationen über zwei Methoden an den Server, die beiden Methoden sind die GET-Methode und die POST-Methode.

Verwenden Sie die GET-Methode, um Daten zu übertragen

Die GET-Methode sendet die codierten Benutzerinformationen an den Server. Die Dateninformationen sind in der URL der Anforderungsseite enthalten, getrennt durch „?“. wie unten gezeigt:

http://www.test.com/cgi-bin/hello.py?key1=value1&key2=value2

Einige weitere Hinweise zu GET-Anfragen:

GET-Anfragen können zwischengespeichert werden

GET-Anfragen bleiben im Browserverlauf

GET Anfragen können mit Lesezeichen versehen werden

GET-Anfragen sollten nicht beim Umgang mit sensiblen Daten verwendet werden

GET-Anfragen haben eine Längenbeschränkung

GET-Anfragen sollten nur zum Abrufen von Daten verwendet werden

Einfaches URL-Beispiel: GET-Methode

Das Folgende ist eine einfache URL, die die GET-Methode verwendet, um zwei Parameter an das Programm hello_get.py zu senden:

/cgi-bin/hello_get.py?first_name=ZARA&last_name=ALI

Das Folgende ist der Code der hello_get.py-Datei:

#!/usr/bin/python

# CGI-Verarbeitungsmodul

cgi, cgitb importieren

# Eine Instanziierung von FieldStorage erstellen

form = cgi.FieldStorage()

# Daten abrufen

first_name = form.getvalue('first_name')

last_name = form.getvalue('last_name')

print "Content-type:text/htmlrnrn"

drucken Sie „“

drucken Sie „

drucken Sie „

Hallo – Zweites CGI-Programm

print „“

print „

print „

Hallo %s %s

% (first_name , Nachname)

print „“

print „“

Browser Anfrage Ausgabeergebnis:

Hallo ZARA ALI

Einfaches Formularbeispiel: GET-Methode

Das Folgende ist ein HTML-Formular, das die GET-Methode verwendet, um zwei Daten an den Server zu senden. Das übermittelte Serverskript ist auch die Datei hello_get.py. Der Code lautet wie folgt:

Vorname:

Nachname:

Verwenden Sie die POST-Methode, um Daten zu übergeben

Verwenden Sie die POST-Methode. Die Übertragung von Daten an den Server ist sicherer und zuverlässiger. Einige vertrauliche Informationen wie Benutzerkennwörter müssen mithilfe von POST übertragen werden.

Das Folgende ist auch hello_get.py, das auch vom Browser übermittelte POST-Formulardaten verarbeiten kann:

#!/usr/bin / Python

# CGI-Modul importieren

cgi, cgitb importieren

# FieldStorage-Instanz erstellen

form = cgi.FieldStorage()

# Formulardaten abrufen

first_name = form.getvalue('first_name')

last_name = form.getvalue ( 'last_name')

print „Content-type:text/htmlrnrn“

print „“

print „

print "

Hallo - Zweites CGI-Programm"

print ""

print "

print "

Hallo %s %s

" % (Vorname, Nachname)

print ""

print "

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage