Python 烧瓶:request.form[“xxxxx”]、request.form.get(“xxxxxx”)和request.args.get(“xxxxx”)之间的区别?
Python 烧瓶:request.form[“xxxxx”]、request.form.get(“xxxxxx”)和request.args.get(“xxxxx”)之间的区别?,python,flask,flask-login,Python,Flask,Flask Login,flask.request.form[“xxx”],flask.request.form.get(“xxx”)和flask.request.args.get(“xxx”)之间有什么区别 我有这个问题,因为我正在使用flask登录来处理身份验证。 特别是在下面的代码中(取自github页面),我不明白为什么在req.form.get(“email”)中,email是None,而在req.form[“email”]中,email没有值。这是密码 @login_manager.request_load
flask.request.form[“xxx”]
,flask.request.form.get(“xxx”)
和flask.request.args.get(“xxx”)之间有什么区别
我有这个问题,因为我正在使用flask登录来处理身份验证。
特别是在下面的代码中(取自github页面),我不明白为什么在req.form.get(“email”)
中,email是None
,而在req.form[“email”]
中,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
正确的用例get()是在字典中不存在要查找的键时返回默认值
例如,如果您有字典d,则:
d = {'foo': 'bar'}
执行以下操作将返回“无”:
d.get('baz', None)
执行以下操作时,将引发异常:
d['baz']
req.form
是一本字典get
返回None
如果找不到键,而[]
访问抛出KeyError
请求。args
是get
参数,请求。表单
是通过POST
表单提交的数据谢谢大家的回答,我已经理解了其中的区别。也许最有帮助的是@Jean Françoisfar的答案