首頁 >後端開發 >Python教學 >為什麼我的 Flask 視圖回傳「TypeError: 'bool' object is not callable」?

為什麼我的 Flask 視圖回傳「TypeError: 'bool' object is not callable」?

Linda Hamilton
Linda Hamilton原創
2024-12-10 06:02:10934瀏覽

Why Does My Flask View Return a `TypeError: 'bool' object is not callable`?

Flask View TypeError: 'bool' Object Not Callable

在Flask 中,視圖應該傳回特定的資料類型,即:字串、回應物件、字串和狀態代碼的元組或有效的WSGI 應用程式。但是,傳回布林值可能會導致錯誤: TypeError: 'bool' object is not callable.

當視圖函數傳回布林值(而不是傳回上述資料類型之一)時,就會發生這種情況(True或假)。 Flask 將此佈林值解釋為 WSGI 應用程式並嘗試呼叫它,從而導致錯誤。

要解決此問題,請確保視圖函數傳回受支援的資料類型之一。在給定的程式碼範例中,視圖在使用者成功登入後傳回True:

@app.route('/login', methods=['POST'])
def login():
    username = request.form['username']
    user = User.query.filter_by(username=username).first()

    if user:
        login_user(user)
        return True

    return False

要修正此問題,它應該傳回字串、回應物件或元群組,而不是布林值:

@app.route('/login', methods=['POST'])
def login():
    username = request.form['username']
    user = User.query.filter_by(username=username).first()

    if user:
        login_user(user)
        return redirect(url_for('home'))  # Return a string or redirect

    return Response("Login failed", status=401)  # Return a Response object

以上是為什麼我的 Flask 視圖回傳「TypeError: 'bool' object is not callable」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn