使用cgi python区分不同的表单

时间:2014-03-15 19:56:36

标签: python html cgi

我在html文件中有多个表单,它们都调用相同的python cgi脚本。例如:

<html>
<body>
<form method="POST" name="form1" action="script.cgi" enctype="multipart/data-form">
....
</form>
...
<form method="POST" name="form2" action="script.cgi" enctype="multipart/data-form">
...
</form>
...
</body>
</html>

在我的cgi脚本中,我执行以下操作:

#!/usr/bin/python
import os
import cgi

print "content-type: text/html; charset=utf-8\n\n"
form = cgi.FieldStorate();
...

我无法从第二个获取数据。我曾尝试多次调用FieldStorage,但这似乎不起作用。所以我的问题是如何在同一个cgi脚本中访问不同的表单?

2 个答案:

答案 0 :(得分:2)

你做不到。浏览器提交一个表单或另一个表单,但不是两者都提交。

如果您需要两种表单中的数据,请将表单合并为一个<form>标记。

答案 1 :(得分:1)

首先,FieldStorage()消耗标准输入,因此它只应实例化一次。

其次,只有提交表单中的数据才会发送到服务器。其他形式可以 也不存在。

因此,虽然您可以使用相同的cgi脚本来处理两个表单,但如果您需要同时处理两个表单,正如Martijn建议的那样,将表单合并为一个<form>