2013-06-04 54 views
1

这是使用mod-WSGILinux网络服务器上的Python中的第一步。在Python中获取所有请求参数

我试图让所有的cell参数从URL中像这样的列表:

...&cell=&cell=1&cell=2&cell=3&cell=4&cell=5&cell=6&cell=7&cell=8&... 

于是我开始用这样的代码:

def application(environment, start_response): 
    import cgi 
    form = cgi.FieldStorage(fp = environment['wsgi.input'], environ = environment) 
    temp_table_inputs=form.getlist('cell') 

但是我发现,第一个cell参数从列表中丢失(我推测,因为getlist删除它,因为内容是空白的)。

两个问题:

  • 如何,我可以得到包括空白值的列表?
  • 如何找到列表中的哪些位置被getlist跳过?

:我知道cell东西有一个位置的依存关系,但我宁愿寻找一种方式,根据他们的位置命名参数之前来处理那些(我继承了代码,并颇有几分依赖在位置的东西,所以重命名的东西将需要很多努力)。

回答

3

按照documentation

该实例的FieldStorage可以像Python字典进行索引。它允许使用in运算符进行成员资格测试,并且还支持标准字典方法keys()和内置函数len()。包含空字符串的表单字段将被忽略,不会出现在字典中;要保留这些值,请在创建FieldStorage实例时为可选的keep_blank_values关键字参数提供真实值。

它解决了您的问题吗?

+1

我对Python完全陌生,所以我试着去感受一下使用的习惯用法以及在哪里设置哪些参数。所以感谢您指点我'keep_blank_values'。会尝试让你知道。 –

+1

别担心:)我想你所要做的就是改变这一行:'form = cgi.FieldStorage(fp = environment ['wsgi.input'],environ = environment)'to'form = cgi.FieldStorage (fp = environment ['wsgi.input'],environ = environment,keep_blank_values = True)' – Markon

+1

是的,他们得出了同样的结论。谢谢! –