在WSGI中,如何区分空白和缺少查询参数?

时间:2012-07-14 04:33:04

标签: google-app-engine wsgi

像这个问题:

  

Distinguish between null and missing parameters in ASP.NET MVC4

......除了WSGI。如何区分“无值”查询参数和不存在的查询参数。

根据this documentation,此代码:

value = self.request.get('n')

..当查询参数不存在时返回空字符串。 如果查询参数存在但没有值,它会返回什么,例如查询字符串为?n

我正在尝试测试这个,但老实说,我遇到了GAE问题。

2 个答案:

答案 0 :(得分:2)

that doc you linked中所述:

  

get(argument_name,default_value ='')

指定default_value参数:

self.request.get('n', None)
如果参数None不存在,

将返回n(例如?foo=bar)。如果参数存在但未指定值,则会得到一个空字符串(例如?n=&foo=bar)。

答案 1 :(得分:1)

我建议不要使用self.request.get界面。它是request对象周围的薄包装器,此时主要用于与webapp1应用程序兼容。相反,对查询参数使用self.request.GET,对请求正文参数使用self.request.POST。这些都充当字典,因此如果密钥不存在,将self.request.GET['foo']编入索引会引发KeyError,而如果密钥不存在,则调用self.request.GET.get('foo', default)将返回default