HTML表单POST到Python脚本?

14 投票
2 回答
33205 浏览
提问于 2025-04-16 05:01

有没有人知道有什么好的资源,可以学习如何把HTML表单中的数据发送到一个Python脚本里?

2 个回答

0

你也可以直接在命令行使用curl。如果你只是想模拟一个用户向网站提交表单,可以这样做:

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

还有很多其他的选项。如果我没记错的话,'-F'是用来发送'multipart/form-data'格式的,而把-F换成'--data'则会使用urlencoded表单数据。这对于快速测试非常好。

如果你需要上传文件,可以使用

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

如果你必须用Python来做这件事,而不是命令行,我强烈推荐使用'poster'模块。http://atlee.ca/software/poster/ -- 这个模块让事情变得非常简单(我知道,因为我之前没有用这个模块做过,真是让人头疼)。

9

对于一个非常基础的CGI脚本,你可以使用cgi模块。可以查看下面这篇来自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

撰写回答