【发布时间】:2014-06-06 21:33:43
【问题描述】:
OS X 10.7.5、Python 2.7、Firefox 28.0
我有一个捕获四个参数的 HTML 表单。
我有一个带有四个命令行参数的 Python 文件。
我想要的是当我点击表单上的“提交”按钮时,使用四个参数调用 Python 文件,就像我在命令行上完成的一样:
vmsmith$ ./file.py arg1 arg2 arg3 arg4
我天真地尝试在 <form ... action="./file.py"> 中引用 Python 文件,但我得到一个 Firefox 框,询问我是否想在 Xcode 中打开 ./file.py。
我怀疑我必须在中间 CGI 脚本中的某处调用 ./file.py,但我在网上搜索过,找不到任何示例或说明如何执行此操作。
在上下文中,我没有运行 Apache;相反,我正在运行我在这里找到的一个简单的 Python CGI 服务器:http://pointlessprogramming.wordpress.com/2011/02/13/python-cgi-tutorial-1/。我已经使用 HTML 表单运行了一些简单的 CGI 脚本,并验证了服务器、HTML 文件和 CGI 脚本都可以正常工作。
具体来说,给定一个具有四个输入字段的 HTML 表单,以下 CGI 脚本可以工作:
#!/usr/local/bin/python
import cgi
import cgitb
cgitb.enable()
form = cgi.FieldStorage()
val1 = form.getvalue('arg1')
val2 = form.getvalue('arg2')
val3 = form.getvalue('arg3')
val4 = form.getvalue('arg4')
我可以在网页上打印所有四个传递的值,但同样的想法是用它们调用file.py。
【问题讨论】:
标签: python-2.7 cgi