我有一个包含表单的html页面,我希望用户能够在表单中输入一些数据。然后我会用python脚本检索这些数据。检索本地html表单
我不明白如何使html和python进行通信。如何在用户点击后发现python检索表单?有一个基本的例子可以用来证明这一点吗?
我有一个包含表单的html页面,我希望用户能够在表单中输入一些数据。然后我会用python脚本检索这些数据。检索本地html表单
我不明白如何使html和python进行通信。如何在用户点击后发现python检索表单?有一个基本的例子可以用来证明这一点吗?
你需要的是一个HTTP服务器。 Python可以用来制作一个服务器,或者你可以得到一个如Apache或Lighttpd。我前段时间基于此写了一个示例应用程序(Rock,Paper,Scissors):https://dl.dropboxusercontent.com/u/95437705/RPS_Web.tgz
C0deH4cker是正确的,您应该让您的python程序在某种Web服务器中运行。
为较大的项目执行此操作的正确方法是使用Web框架,如Django或Web2py。这些框架具有出色的文档和教程页面,非常值得花费。较小的好处是两者都有自己的内置Web服务器进行小型部署。
另一种方法是编写具有自己的Web服务器的Python代码。你可以看看Twisted,python的网络框架。好信息在http://twistedmatrix.com/documents/current/web/howto/web-in-60/index.html。
最后 - 但这被认为有点过时了,我猜(??) - 有您描述的CGI选项。大多数Web服务器(如Apache和Lighttpd)都可以运行CGI脚本。 CGI脚本是非常简单的程序,它们以最简单的形式运行时,在其stdout上输出HTML代码。 Web服务器查看脚本中的第一个(“shebang”)行,以确定脚本解释器,执行脚本,拾取输出并通过HTTP提供输出。
CGI对参数传递做出了具体规定。在Python CGI模块,这些可获得通过cgi.FieldStorage()
首先对一些HTML:
一个HTML形式所具有的“动作”和“方法”属性。 Action是将要发送表单数据的URL(绝对或相对于当前路径);方法是使用的方法,通常用于提交按钮的表单是“POST”。
所以,如果你有这样的HTML代码运行的地方:
<html>
<body>
<form name="sample" action="cgi-bin/myscript.cgi" method="post">
Name: <input type="text" name="name"/>
<input type="submit" value="Submit"/>
</form>
</body>
</html>
当用户按下提交按钮,所有的输入值都发布到URL“myprogram.cgi”。
关于CGI代码应该看起来像一个很好的文本是http://docs.python.org/library/cgi.html。
一些代码,应该工作是:
import cgi
print "Content-Type: text/html" # HTML is following
print # blank line, end of headers
print "<TITLE>CGI script output</TITLE>"
print "<body>\n"
print "<H1>This is my first CGI script</H1>"
print "Hello, world!"
form = cgi.FieldStorage()
if "name" not in form:
print "<H1>Error</H1>"
print "Please fill in the name fields"
else:
print "<p>name:", form["name"].value
print "</body>"
现在,你意识到你必须做出对从Web服务器指定的URL提供的代码是很重要的。你应该如何做到这一点取决于你的网络服务器。
在linux下的apache上,你通常会把脚本放在/ var/www/cgi-bin中。可能你应该在apache配置中启用cgi执行,因为出于安全原因它可能被关闭。
此链接显示404页未找到错误。有更新的版本吗? – ChrisProsser 2013-09-17 14:45:21
重新上传到Dropbox,现在应该没问题 – C0deH4cker 2013-09-18 01:54:14