我正在运行一个 Pylons 项目并遇到了这个奇怪的问题。提交表单时,我可以选择添加徽标(简单的 .png)。徽标在 FieldStorage 实例中传递。我尝试评估徽标是否与此一起发送:
if request.params.get('logo'):
do x
但是,即使有徽标,它也始终评估为 False。如果我打印 request.params 我得到
UnicodeMultiDict([('logo', FieldStorage('logo', u'tux.png'))])
。我用以下方法解决了它:
if not request.params.get('logo') == None:
do x
我不明白为什么这行得通,而第一个例子却没有。
最佳答案
这很有趣,不知何故 FieldStorage
对象解析为 false。
编写以下内容是完全合法的(稍微简单一点):
if request.params.get('logo') is not None:
# do x
关于即使有对象,Python .get() 也不会评估为 True?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9327597/