Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.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 400错误请求烧瓶_Python_Flask - Fatal编程技术网

Python 400错误请求烧瓶

Python 400错误请求烧瓶,python,flask,Python,Flask,首先,我搜索了这个错误,尝试了那些家伙说的一切,但它对我不起作用 所以,基本上,我有一个登录表单,我甚至无法访问该页面,因为它给了我400个错误请求 我的烧瓶代码: @app.route('/', methods=['POST', 'GET']) def login(): users = mongo.db.users login_user = users.find_one({'name' : request.form['username']}) if login_use

首先,我搜索了这个错误,尝试了那些家伙说的一切,但它对我不起作用

所以,基本上,我有一个登录表单,我甚至无法访问该页面,因为它给了我400个错误请求

我的烧瓶代码:

@app.route('/', methods=['POST', 'GET'])
def login():
    users = mongo.db.users
    login_user = users.find_one({'name' : request.form['username']})

    if login_user:
        if bcrypt.hashpw(request.form['pass'].encode('utf-8'), login_user['password'].encode('utf-8')) == login_user['password'].encode('utf-8'):
            session['username'] = request.form['username']
            return redirect(url_for('index'))

    return 'Invalid username/password combination'
我的HTML表单:

<div class="container">
<div class="row">
    <div class="col-md-4 col-md-offset-4">
        <form method=POST action="{{ url_for('login') }}" enctype="multipart/form-data">
            <div class="form-group">
                <label for="exampleInputEmail1">Username</label>
                <input type="text" class="form-control" name="username" placeholder="Username">
            </div>
            <div class="form-group">
                <label for="exampleInputPassword1">Password</label>
                <input type="password" class="form-control" name="pass" placeholder="Password">
            </div>
            <button type="submit" class="btn btn-primary btn-block">Log In</button>
        </form>
        <br>
    </div>
</div>

用户名
密码
登录



我有一个类似的注册页面,但效果很好,它将用户添加到数据库中。

您的html表单应该通过
登录视图呈现,因为在登录视图中,您试图获取表单值:

@app.route('/', methods=['POST', 'GET'])
def login():
    ...
    return render_template('your_htmlform.html')

现在,如果表单已提交,您可以在表单操作中添加
action={{url\u for('index')}}

我已经修复了它。我必须在登录索引下包含
if request.method==“POST”
。不知道我怎么会没有更早地了解到这一点,这是有道理的,当我甚至没有机会打字的时候,我从表格中请求了一些东西


谢谢大家。

“那些家伙说的每件事”谁是“那些家伙”,他们说了什么,他们提出的解决方案有什么不起作用(仍然收到400个错误,或者其他什么?)?提供这些详细信息将有助于这里的人们确定您已经或没有尝试过什么。将
print(request.form)
放在
login
的开头,检查
username
pass
是否在其中。如果没有,请尝试删除
enctype=“multipart/form data”
。尝试使用
app.config['DEBUG']=True
获取已启用调试的错误的更详细堆栈跟踪,除了错误本身之外,不会显示任何内容。当我尝试执行@Lee所说的操作时,终端向我显示:RuntimeError:在请求上下文之外工作。这通常意味着您试图使用需要活动HTTP请求的功能。有关如何避免此问题的信息,请参阅测试文档。修复代码缩进。