2011-01-16 4 views
1

Ich habe ein HTML-Formular geschrieben und versuche, ein Python CGI-Skript damit zu integrieren. Ich habe meinen Apache-Server bereits konfiguriert, um CGI-Skripte aus dem cgi-bin-Verzeichnis auszuführen. Hier ist das HTML-Formular:Problem mit Python CGI in Firefox

<html> 
<body> 
<form name="input" action="c:/xampp/cgi-bin/test2.py" method="post"> 
    <input type="text" name="qry" /> 
    <input type="submit" value="GO!" /> 
</form> 
</body> 
</html> 

Und hier ist der test2.py CGI-Skript:

#!c:/Python27/python.exe -u 
import cgi 
import cgitb 
cgitb.enable() 
form = cgi.FieldStorage() 
qry = form["qry"].value 
print "Content-Type: text/html" 
print 


print "<html" 
print "<body>" 
print qry 
print "</body>" 
print "</html>" 

Die HTML-Seite befindet sich in meinem htdocs Ordner und der CGI-Skript ist im cgi-bin-Verzeichnis. Wenn ich jedoch etwas in das Formular eingebe und abschicke, gibt Firefox eine Fehlermeldung aus: "Firefox weiß nicht, wie man diese Adresse öffnet, weil das Protokoll (c) keinem Programm zugeordnet ist". Warum tritt dieser Fehler auf? Hat es etwas mit meinem Weg zum CGI-Skript in meiner HTML-Seite zu tun? Danke im Voraus!

+2

Verwenden Sie action = "/ cgi-bin/test2.py" – cgohlke

+0

cgi-bin? Nostalgisch... –

Antwort

1

Sie haben Recht: Es hat etwas mit dem Pfad zum CGI-Skript auf der HTML-Seite zu tun. Das Attribut action des Formulars sollte sich auf den Pfad beziehen, in dem das CGI-Skript auf dem Server interpretiert wird, z. B. /cgi-bin/test2.py.

Da Sie diesen Fehler gemacht haben, nehme ich an, dass Sie neu in der Webentwicklung sind. Ziehen Sie mod_wsgi und ein Framework wie Django anstelle von CGI in Betracht, besonders wenn Sie viel Traffic erwarten oder wenn Sie eine Webanwendung erstellen und nicht nur ein einzelnes Formular bearbeiten.