Heim > Artikel > Backend-Entwicklung > Teilen Sie ein Beispiel-Tutorial zur PythonCGI-Programmierung
Ich habe in der letzten Woche weiter online Python gelernt und bin mit der CGI-Programmierung in Python in Kontakt gekommen. Die offizielle Definition von CGI lautet wie folgt:
CGI (Common Gateway Interface), ein gemeinsames Gateway Schnittstelle ist ein Programm, das auf dem Server ausgeführt wird, z. B.: HTTP-Server, der eine Schnittstelle zur Client-HTML-Seite bereitstellt.
Mich interessierte mehr, wie leistungsstarke Anwendungen mit Python CGI geschrieben werden können, also begann ich, den Programmierteil von Python direkt zu erlernen. Zuerst musste ich den Webserver so konfigurieren, dass er CGI unterstützt hat Die integrierte Entwicklungsumgebung wamp ist installiert, sodass Apache nicht installiert werden muss. Es gibt viele Blog-Beiträge im Internet über die Konfiguration unter Apache, und sie befinden sich in der Linux-Umgebung, aber ich denke Der Inhalt der Konfigurationsdatei sollte nicht sein. Es wird große Änderungen geben, also habe ich meine Bastelreise begonnen. Es stellt sich heraus, dass die Verwendung von Windows für die Entwicklung wirklich eine Falle ist.
Laut der Online-Lernwebsite Python CGI müssen Sie zuerst das CGI-Verzeichnis einrichten, httpd.conf in der Apache-Konfigurationsdatei ändern
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
und dann Ändern Sie die Datei httpd.conf wie folgt:
<Directory "/var/www/cgi-bin"> AllowOverride None Options +ExecCGI Order allow,deny Allow from all</Directory>
Fügen Sie dann das Suffix .py in AddHandler hinzu , damit wir auf die Python-Skriptdatei mit der Endung .py zugreifen können:
Nachdem Sie dies alles erledigt haben, starten Sie den Server (Apache/Wamp) neu und schreiben Sie das erste CGI-Programm , der Code lautet wie folgt:
test1.py
#!D:\Python27\python # -*- coding: UTF-8 -*-print "Content-type:text/html\r\n\r\n"print '<html>'print '<head>'print '<title>Hello Word - First CGI Program</title>'print '</head>'print '<body>'print '<h2>Hello Word! This is my first CGI program</h2>'print '</body>'print '</html>'
Der Inhalt der ersten Zeile gibt an den Speicherort des Skriptinterpreters, der anhand von ermittelt werden kann: Ändern Sie den Pfad Ihrer eigenen Installation
und geben Sie in die Adressleiste des Browsers ein: http://localhost/cgi-bin/ test1.py
Dann zeigt der Browserzugriff folgende Ergebnisse an:
Hello Word! This is my first CGI program
Kein Problem
Dann schreiben Sie das zweite Programm:hello_get.py
#!D:\Python27\python# -*- coding: UTF-8 -*-# CGI处理模块import cgi, cgitb # 创建 FieldStorage 的实例化form = cgi.FieldStorage() # 获取数据first_name = form.getvalue('first_name')last_name = form.getvalue('last_name')print "Content-type:text/html\r\n\r\n"print "<html>"print "<head>"print "<title>Hello - Second CGI Program</title>"print "</head>"print "<body>"print "<h2>Hello %s %s</h2>" % (first_name, last_name)print "</body>"print "</html>"
Geben Sie localhost/cgi-bin/hello_get.py ein? first_name=ZARA&last_name=ALI
im Browser Es wurde jedoch nicht ausgegeben
wie auf der Website angegeben, aber der folgende Fehler ist aufgetreten
Die Konfigurationsumgebung war also dieselbe und die Codes waren genau die gleichen Was war das Problem? Dann habe ich die Apache-CGI-Konfigurationsmethode verwendet, aber alle Konfigurationsmethoden waren die unter Linux, also hatte ich keine andere Wahl, als die CGI-Umgebung neu zu installieren Führen Sie jeden der oben genannten Schritte erneut aus und fügen Sie dann den Code auf der Website hinzu. Kopieren Sie ihn in den Editor und geben Sie ihn erneut in den Browser ein:
http://localhost/cgi-bin/hello_get.py?first_name=ZARA&last_name=ALI
Das Ergebnis ist immer noch die obige Zeichenfolge mit Fehlermeldungen, daher habe ich mir die Eingabeaufforderung genau angesehen. Sie bedeutet ungefähr:
Interner Serverfehler
Der Server ist auf einen internen Fehler gestoßen oder konnte meine Anfrage aufgrund einer Fehlkonfiguration nicht ausführen
Bitte kontaktieren Sie den Serveradministrator per E-Mail, um ihn über diesen Fehler und Ihre Wünsche zu informieren was tun sollte, bevor dieser Fehler auftritt? Ich bin fest davon überzeugt, dass es so ist. Da ich den Server falsch konfiguriert hatte, dachte ich plötzlich, dass das erste Programm test1 korrekt ausgeführt werden konnte, auch wenn ich keine Konfigurationsdateien geändert hatte. Könnte es sein, dass dieser Fehler nichts damit zu tun hatte? Ich versuche also, die Anweisung zur Deklaration des Interpreterpfads in der ersten Zeile von test1 zu entfernen und sie erneut auszuführen. Derselbe Fehler erscheint im Browser
Also ich bin sehr erleichtert, denn das bestätigt meine Vermutung, es hat nichts mit der Konfiguration des Servers zu tun, weil meine Skriptdatei einen Fehler aufweist, sodass der Server nicht auf die Anfrage antworten kann. Wenn dies der Fall ist, ist der Fehler auch bei hello_get.py derselbe. Überprüfen Sie einfach, ob Fehler vorliegen Code.
Wenn ich das sage, haben die Leute den Fehler bereits in meiner
hello_get.py-Datei gesehen – ich habe ihn einfach nicht selbst eingegeben , ich habe schon versucht, online zu kopieren. Der C-Sprachcode wird in VC++6.0 eingefügt. Oberflächlich betrachtet scheint die Syntax völlig korrekt zu sein, aber es gibt immer einen Fehler und die Eingabeaufforderung ist unverständlich. Wenn ich also auf diese Situation stoße, denke ich, dass dies der Fall sein könnte der Grund. Dies weist auch alle darauf hin, dass der Code Buchstabe für Buchstabe selbst in Ihr Programm eingegeben werden muss, da es sonst zu Fehlern kommt, die schwer zu erkennen sind.
Lassen Sie uns abschließend darüber sprechen, wie Sie Wamp (Apache) unter Windows richtig konfigurieren, um CGI-Skripte korrekt auszuführen :
httpd.conf öffnen
Ändern Sie Zeile 371 将387行f1f3f85950947386ceb2305656cc4f44引号里的内容也改成自己的cgi-bin所在的路径 保存之后重启服务器即可 【相关推荐】 2. 分享在IIS上用CGI方式运行Python脚本的实例教程 ScriptAlias /cgi-bin/ "D:/wamp/bin/apache/apache2.4.9/cgi-bin/"前面的#号去掉,就是解除注释,将后面引号里的D:/wamp/bin/apache/apache2.4.9/cgi-bin/改成自己的cgi-bin所在的路径
Das obige ist der detaillierte Inhalt vonTeilen Sie ein Beispiel-Tutorial zur PythonCGI-Programmierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!