2010-10-05 43 views
11

有没有人知道有关如何将数据从HTML表单转换为python脚本的任何好资源?HTML表单POST到python脚本?

+0

这是我学会做的地方。 http://webpython.codepoint.net/ – John 2010-10-05 16:56:20

回答

8

对于非常基本的CGI脚本,可以使用cgi module。看看从Python文档下面的文章就如何处理通过POST提交HTML表单的非常简单的例子:从上面的文章

例子:

#!/usr/bin/env python 

import cgi 
import cgitb; cgitb.enable() # for troubleshooting 

print "Content-type: text/html" 
print 

print """ 
<html> 

<head><title>Sample CGI Script</title></head> 

<body> 

    <h3> Sample CGI Script </h3> 
""" 

form = cgi.FieldStorage() 
message = form.getvalue("message", "(no message)") 

print """ 

    <p>Previous message: %s</p> 

    <p>form 

    <form method="post" action="index.cgi"> 
    <p>message: <input type="text" name="message"/></p> 
    </form> 

</body> 

</html> 
""" % message 
+0

我来自HTML/JS/PHP的背景和有点困惑自己。上面的例子是什么格式?我如何将浏览器指向它? – Skizit 2010-10-05 10:49:17

+0

@Meowmix:完全像php,但使用python。它由您的Web服务器执行,并以简单的形式呈现HTML页面。当表单回发到脚本时,它只是呈现回发送的消息。 – 2010-10-05 10:55:47

1

您也可以在命令行上使用curl。如果你只是想模拟用户提交表单到Web服务器,你会做这样的事情:

curl -F "user=1" -F "fname=Larry" -F "lname=Luser" http://localhost:8080 

这里有很多其他选择。 IIRC,'-F'使用'multipart/form-data',用'--data'替换-F将使用urlencoded表单数据。非常适合快速测试。

如果您需要发布文件,你可以使用

curl -F"@mypic.jpg" http://localhost:8080 

如果你有使用Python这个,而不是一个命令行,我强烈推荐“海报”模块。 http://atlee.ca/software/poster/ - 这使得这真的很容易(我知道,'因为我没有这个模块做了,所以很头疼)。