使用 时,如果不存在self.request.get('q')
,则默认值为None。'q'
你可以用一个简单的字典来测试它:
>>> d = {'q': 'message'}
>>> print d.get('q')
'message'
>>> d = {'a': 'no q here'}
>>> print d.get('q')
None
因此,如果您正在检查“q”是否在您的请求字典中,您应该与 None ( if q is None:
) 进行比较。
如果您要比较以查看您的查询是否为空白,您可以执行以下操作:
>>> query = ''
>>> print query is None
False
>>> print query == ''
True
>>> print len(query) > 0
False
>>> print bool(query)
False
>>> query = 'valid'
>>> print query is None
False
>>> print query == ''
False
>>> print len(query) > 0
True
>>> print bool(query)
True
您可以使用repr()
查看实际结果:(在本例中为空白字符串)
>>> print repr(d.get('q', ''))
''
因此,由于self.request.get('q')
默认为 '',我将执行以下操作:
q = self.request.get('q')
if q is '': # Blank or non-existent
custQuery = Customer.all()
else: # Non-blank
custQuery = db.Query(Customer)