【发布时间】:2016-10-01 12:06:51
【问题描述】:
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
【问题讨论】:
-
req.form是一本字典。get如果找不到密钥,则返回None,而[]访问会抛出KeyError -
request.args是GET参数,request.form是通过POST表单提交的数据 -
谢谢大家的回答,我已经理解了差异。也许最有帮助的是@Jean-FrançoisFabre 答案
标签: python flask flask-login