[解決済み] flask TypeError: 'ImmutableMultiDict' オブジェクトは呼び出し可能ではありません。
2022-02-14 16:10:11
質問
このコードのどこが問題なのか、誰か教えてください。私が得るエラー。
TypeError: 'ImmutableMultiDict' オブジェクトは呼び出し可能ではありません。
def login():
error = None
form = LoginForm(request.form)
if request.method == 'POST':
viewer = User.query.filter_by(Group='viewer').first()
admin = User.query.filter_by(Group='admin').first()
staff = User.query.filter_by(Group='staff').first()
user = User.query.filter_by(Email=request.form(['email'])).first()
password = User.query.filter_by(Password=request.form(['password'])).first()
if (user or password) is None:
session['logged_in'] = False
flash('Please write your username password')
else:
session['logged_in'] = True
flash('You were logged in')
if viewer:
return redirect(url_for('viewer'))
elif admin :
return redirect(url_for('admin'))
elif staff:
return redirect(url_for('employee'))
return render_template('login.html', form=form)
そして、これはhtmlの部分です。
<form class="sa-innate-form" method="post">
{{ form.csrf_token }}
<label>Email Address</label>
<input type="text" name="email" value="{{ request.form.email }}">
<label>Password</label>
<input type="password" name="password" value="{{ request.form.password }}">
<button type="submit" value="submit">Sign In</button>
<a href="">Forgot Password?</a>
</form>
解決方法は?
ここに構文エラーがあります。
user = User.query.filter_by(Email=request.form(['email'])).first()
ではなく、こうあるべきでしょう。
user = User.query.filter_by(Email=request.form['email']).first()
この例は他にもいくつかあるので、すべてキャッチするようにしてください。これがエラーになる理由は、あなたが
request.form
を文字列リスト
['email']
のように、フォームにインデックスを付けるのではありません。
if (user or password) is None:
もバグっています。どちらかが
None
の場合、ブロックは発生しません。しかし、望ましい動作は両方を要求することだと思います。このどちらかを試してみてはいかがでしょうか。
if user is None or password is None:
または
if None in [user, password]:
関連
-
pythonを使ったオフィス自動化コード例
-
任意波形を生成してtxtで保存するためのPython実装
-
Python LeNetネットワークの説明とpytorchでの実装
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み] Pythonでオブジェクトが属性を持つかどうかを知る方法
-
[解決済み] オブジェクトの種類を決定しますか?
-
[解決済み] Pythonのクラスはなぜオブジェクトを継承するのですか?
-
[解決済み] Flaskのリクエストで受信したデータを取得する
-
[解決済み] Flaskで静的ファイルを提供する方法
-
[解決済み] FlaskのビューからJSONレスポンスを返す
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonによるjieba分割ライブラリ
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
PythonによるExcelファイルの一括操作の説明
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない