CGI - FieldStorage - 来自现场存储的数据返回一个 MiniFieldStorage

Dee*_*k S 4 html python forms cgi

我有一个 HTML 表单,它返回一个提交单个值。其代码如下:

<form action="/cgi-bin/filter.cgi" method = "get">Filter By Version: <input    type="text" name="filter"/><input type="submit" value="submit"/></form>
Run Code Online (Sandbox Code Playgroud)

CGI如下:

#!/usr/bin/python
import cgi
formData = cgi.FieldStorage()
Run Code Online (Sandbox Code Playgroud)

当我打印 formData 的值时。我得到以下输出:

FieldStorage(None, None, [MiniFieldStorage('filter', '112')])

如何获取“过滤器”的信息?为什么我会在“MINIFIELDSTORAGE”中获得值?

fur*_*ras 6

阅读CGI文档:https : //docs.python.org/3.5/library/cgi.html

你有

value = formData['filter'].value 
value = formData.getvalue('filter')
value = formData.getvalue('filter', default_value) 
Run Code Online (Sandbox Code Playgroud)

以及许多其他获得价值的方法。


在文档中:

...本身是 FieldStorage 的实例(或 MiniFieldStorage,取决于表单编码

当表单以“旧”格式(作为查询字符串或作为 application/x-www-form-urlencoded 类型的单个数据部分)提交时,项目实际上将是 MiniFieldStorage 类的实例。

query string意味着method="GET"代替method="POST"