Flask:request.form [“xxxxx”],request.form.get(“xxxxxx”)和request.args.get(“xxxxx”)之间的差异?

时间:2016-10-01 12:06:51

标签: python flask flask-login

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

1 个答案:

答案 0 :(得分:2)

正确的用例get()是当你要查找的密钥不存在于字典中时返回默认值。

例如,如果你有一个字典d,那么:

d = {'foo': 'bar'}

执行以下操作将返回None:

d.get('baz', None)

执行以下操作时会抛出异常:

d['baz']