flask.request.form["xxx"]
,flask.request.form.get("xxx")
和flask.request.args.get("xxx")
之间有什么区别?
我有这个问题,因为我使用flask-login来处理身份验证
特别是在以下代码中(取自flask-login github页面),我不明白为什么req.form.get("email")
,电子邮件是None
,而req.form["email"]
,电子邮件没有一个值。这是代码。
@login_manager.request_loader
def request_loader(req):
email = req.form.get('email')
if email not in users:
return
user = User()
user.id = email
# DO NOT ever store passwords in plaintext and always compare password
# hashes using constant-time comparison!
user.is_authenticated = req.form['pw'] == users[email]['pw']
return user
答案 0 :(得分:2)
正确的用例get()是当你要查找的密钥不存在于字典中时返回默认值。
例如,如果你有一个字典d,那么:
d = {'foo': 'bar'}
执行以下操作将返回None:
d.get('baz', None)
执行以下操作时会抛出异常:
d['baz']