CGI - HTML 到 python
CGI - HTML to python
我正在按照教程 CGI,当我尝试执行程序时
#!C:/Python27/python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage()
# Get data from fields
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>"
HTML 文件
<form action = "/cgi-bin/hello_get.py" method = "get">
First Name: <input type = "text" name = "first_name"> <br />
Last Name: <input type = "text" name = "last_name" />
<input type = "submit" value = "Submit" />
</form>
在我的浏览器中提交值时,我的 python 文件按原样显示。
浏览器显示我的代码是空白的。即使它没有得到名字和姓氏。有什么问题?
我找不到我哪里做错了。
如果我没理解错的话,您是说网络服务器正在显示您的 Python 程序的源代码,而不是执行源代码。根据您的 shebang 规范,您似乎在 Windows 下 运行。根据您使用的 Web 服务器,例如 IIS 或 Apache,您需要配置 Web 服务器,以便它知道扩展名为 .py 的文件将由 Python 解释器执行,因为它显然忽略了shebang 规范。例如,如果使用 Apache,您的 httpd 配置文件可能包含以下行:
AddHandler cgi-script .py
ScriptInterpreterSource Registry-Strict
对于第二行,Web 服务器将忽略 shebang 并使用与文件类型 .py 关联的任何程序,这应该是您的 Python 解释器。这可能是您想要的,因为您可能正在升级您的解释器及其位置更改。在这种情况下,您应该将 shebang 编码为:
#!/usr/bin/env python
我正在按照教程 CGI,当我尝试执行程序时
#!C:/Python27/python.exe
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage()
# Get data from fields
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>"
HTML 文件
<form action = "/cgi-bin/hello_get.py" method = "get">
First Name: <input type = "text" name = "first_name"> <br />
Last Name: <input type = "text" name = "last_name" />
<input type = "submit" value = "Submit" />
</form>
在我的浏览器中提交值时,我的 python 文件按原样显示。 浏览器显示我的代码是空白的。即使它没有得到名字和姓氏。有什么问题?
我找不到我哪里做错了。
如果我没理解错的话,您是说网络服务器正在显示您的 Python 程序的源代码,而不是执行源代码。根据您的 shebang 规范,您似乎在 Windows 下 运行。根据您使用的 Web 服务器,例如 IIS 或 Apache,您需要配置 Web 服务器,以便它知道扩展名为 .py 的文件将由 Python 解释器执行,因为它显然忽略了shebang 规范。例如,如果使用 Apache,您的 httpd 配置文件可能包含以下行:
AddHandler cgi-script .py
ScriptInterpreterSource Registry-Strict
对于第二行,Web 服务器将忽略 shebang 并使用与文件类型 .py 关联的任何程序,这应该是您的 Python 解释器。这可能是您想要的,因为您可能正在升级您的解释器及其位置更改。在这种情况下,您应该将 shebang 编码为:
#!/usr/bin/env python