Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 烧瓶:request.form[“xxxxx”]、request.form.get(“xxxxxx”)和request.args.get(“xxxxx”)之间的区别?_Python_Flask_Flask Login - Fatal编程技术网

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的答案