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 框问我是否要打开 ./file.py在 Xcode 中。

我怀疑我必须调用 ./file.py在中间 CGI 脚本中的某处,但我已经搜索了网络,但找不到任何示例或说明如何执行此操作。

在上下文中,我没有运行 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和他们在一起。

请您参考如下方法:

1) file.py 可以变成 CGI 脚本,例如通过将 CGI 脚本代码与 file.py 中使用变量 val1 val2 val3 和 val4 执行某些操作的部分相结合。那么<form ... action="./file.py">将工作,但您将无法以通常的方式在命令行上使用参数运行 file.py。

2) 或者,file.py 可以保持不变并从您的 CGI 脚本中调用,如下所示:

import os 
os.system('python file.py' + ' ' + val1 + ' ' + val2 + ' ' + val3 + ' ' + val4) 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!