Python 检索本地html表单

Python 检索本地html表单,python,html,forms,Python,Html,Forms,我有一个包含表单的html页面,我希望用户能够在表单中输入一些数据。然后,我将使用python脚本检索这些数据 我不明白如何让html和python进行通信。在用户单击post之后,python如何检索表单?是否有一个基本示例可以用来演示这一点?您需要的是HTTP服务器。Python可以用来制作服务器,也可以制作Apache或Lighttpd等服务器。不久前,我基于此编写了一个示例应用程序(石头、布、剪刀):C0deH4cker是正确的,您应该让python程序在某种web服务器中运行 对于更大

我有一个包含表单的html页面,我希望用户能够在表单中输入一些数据。然后,我将使用python脚本检索这些数据


我不明白如何让html和python进行通信。在用户单击post之后,python如何检索表单?是否有一个基本示例可以用来演示这一点?

您需要的是HTTP服务器。Python可以用来制作服务器,也可以制作Apache或Lighttpd等服务器。不久前,我基于此编写了一个示例应用程序(石头、布、剪刀):

C0deH4cker是正确的,您应该让python程序在某种web服务器中运行

对于更大的项目,一个合适的方法是使用像Django或Web2py这样的web框架。这些框架具有优秀的文档和教程页面,非常值得花费精力。一个较小的好处是,两者都有自己的内置Web服务器,用于开发小型部署

另一种方法是编写具有自己的web服务器的python代码。您可以看看Twisted,python的网络框架。好消息在

最后——但这被认为有点过时,我想(??)——这里有您描述的CGI选项。像apache和lighttpd这样的大多数web服务器都可以选择运行CGI脚本。CGI脚本是非常简单的程序,在运行时以最简单的形式在其标准输出上输出HTML代码。Web服务器查看脚本中的第一行(“shebang”)以确定脚本解释器,执行脚本,获取输出并通过HTTP提供服务

CGI中对参数传递做出了具体规定。在PythonCGI模块中,可以通过CGI.FieldStorage()获得

首先,对于一些HTML:

HTML表单具有“action”和“method”属性。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>

姓名:
当用户按下submit按钮时,所有输入值都会发布到URL“myprogram.cgi”

一篇关于CGI代码应该是什么样子的好文章出现了

一些应该有效的代码是:

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>"
导入cgi
打印“内容类型:文本/html”#html如下
打印#空白行,标题结尾
打印“CGI脚本输出”
打印“\n”
打印“这是我的第一个CGI脚本”
打印“你好,世界!”
form=cgi.FieldStorage()
如果“名称”不在表格中:
打印“错误”
打印“请填写姓名字段”
其他:
打印“name:”,表单[“name”]。值
打印“”
现在,您必须意识到必须使这些代码在web服务器的指定URL上可用,这一点很重要。如何执行此操作取决于您的web服务器


在linux下的apache上,通常将脚本放在/var/www/cgi-bin中。您可能应该在apache配置中启用cgi执行,因为出于安全原因可能会关闭cgi执行。

此链接显示404页面未找到错误。有更新版本吗?重新上传到Dropbox,现在应该可以了