如何识别 python 中的空查询参数?

How do I recognise an empty query parameter in python?

我需要能够区分查询参数中有空字符串和没有该参数。以下代码:

form = cgi.FieldStorage()
foo = form.getfirst('foo')

两者 http://example.com?foo and http://example.com 导致 foo 为 None。我希望在第一种情况下 foo 是一个空字符串,并且只在第二个缓存 None 中。我需要做什么来区分这两个缓存。

p.s。 http://example.com?foo=bar 结果如预期的那样 foo 变成了 bar。

您可以使用 in 运算符测试表单中是否存在 foo 键:

foo = form.getfirst('foo', '') if 'foo' in form else None

也许这个 other question 就是您要搜索的内容。

将 keep_blank_value=1 传递给您的 FieldStorage 构造函数可以解决问题。