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

时间:2016-12-06 06:57:31

标签: python html 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>

CGI如下:

#!/usr/bin/python
import cgi
formData = cgi.FieldStorage()

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

FieldStorage(无,无,[MiniFieldStorage('过滤器','112')])

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

1 个答案:

答案 0 :(得分:2)

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

你有

value = formData['filter'].value 
value = formData.getvalue('filter')
value = formData.getvalue('filter', default_value) 

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

在doc:

  

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

  

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

query string表示method="GET"而不是method="POST"