まず、このエラーを検索してみて、それらの人が言ったことをすべて試しましたが、それは私のためにはうまくいかないでしょう。400 Bad Request Flask
基本的に私はログインフォームを持っていますが、私は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>
私は同様のレジスタページを持っているが、それが正常に動作し、それはDBにユーザーを追加します。
@app.route('/', methods=['POST', 'GET'])
def login():
...
return render_template('your_htmlform.html')
そしてフォームを送信場合、今お使いのフォームアクションであなたがaction={{url_for('index')}}
を追加することができます。
"すべての人が言った*"彼らは誰ですか、彼らは何を言いましたか?そして、提案された解決策については何が正しく機能しませんでしたか?(まだ400エラーが出ますか?これらの詳細を提供することで、あなたが何を持っているのか、まだ試していないのかを確認するのに役立ちます。 – Tagc
'login'の先頭に' print(request.form) 'を置き、' username'と 'pass'が入っているかどうか確認してください。そうでない場合は、 'enctype =" multipart/form-data "'を削除してみてください。 –
エラーの詳細なスタックトレースを取得するには、 'appbuild ['DEBUG'] = True'を試してください – Rohanil