CGI in Python

Was ist CGI?

Das Common Gateway Interface (CGI) ist eine Schnittstelle von Webservern, über die Datenaustausch mit externen Anwendungen möglich ist. Die Webseiten müssen nicht vollständig auf den Server liegen, sie werden von Programmen dynamisch erzeugt. Die Programme liegen dazu in einem Extra-Verzeichnis des Webservers (z.B. cgi-bin). Früher wurde für CGI-Scripte meist Perl oder C verwendet. Python wird auch in CGI-Scripten, meist innerhalb von Webframeworks, wie Django oder Flask verwendet.

CGI und Python

Auch mit Python lassen sich CGI-Scripte erzeugen. Dafür muss eine ausführbare Python-Datei erzeugt werden, die HTML-Quelltext erzeugt. Unter Windows 10 und 11 lässt sich eine Python-Datei einfach durch Doppelklick ausführen, unter anderen Betriebssystemen ist dazu eine sogenannte Shebang erforderlich, die das nötige Programm aufruft. Außerdem muss die Datei noch ausführbar gemacht werden.

Das folgende CGI-Script gibt mit der print-Anweisung eine einfache Webseite. als mehrzeilige Zeichenkette aus:

#!/usr/bin/python3 print(""" <!DOCTYPE html> <html lang="de"> <head> <meta charset="utf-8"> <title>Python-CGI-Programmierung</title> </head> <body> <h1>Hallo Welt, Python CGI!</h1> </body> </html> """)

Das Script muss nun in das cgi-bin Verzeichnis eines Webservers kopiert werden und kann über den Webbrowser aufgerufen werden. Wir wollen dazu den http.server von Python verwenden.

CGI-Script mit dem http.server von Python aufrufen