我对 python 的 cgi.FieldStorage() 不太熟悉,我在我的项目中遇到了麻烦。基本上,在我的主页上,我有一个名为criteria 的html 表单。表单的操作调用 process.py,它使用 FieldStorage() 从表单获取输入并生成新的结果页面。它第一次加载很好。
<form action="process.py" name="SearchForm">
<select id="criterion">
<option value="None">None</option>
<option value="result1">Result 1</option>
<option value="result2">Result 2</option>
</select>
<input type = "submit">
</form>
我的问题是,在我的 process.py 中,我使用 Python 生成与主页相同的 html。所以结果页面也有一个名为criteria的表单,它调用process.py。但是,如果我再次在表单中输入内容,则调用 process.py 但 cgi.FieldStorage 完全为空。有可能解决这个问题吗?
编辑:在我的 process.py
import cgi
form = cgi.FieldStorage()
if 'criterion' in form:
table_name = form['criterion'].value
print "Content-Type: text/html\r\n\r\n"
print """\
<html>
<head></head>
<body>
<form action="process.py" name="SearchForm">
<select id="criterion">
<option value="None">None</option>
<option value="result1">Result 1</option>
<option value="result2">Result 2</option>
</select>
<input type = "submit">
</form>"""
select(table_name)
打印"""\
"""
这不是我的全部代码,但这是它的要点。select(table_name) 是用于根据标准值生成信息的 python 方法。再次调用 process.py 但 cgi.fieldstorage() 现在是空的。