Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Pandangan Flask Saya Mengembalikan 'TypeError: objek 'bool' tidak boleh dipanggil'?

Mengapa Pandangan Flask Saya Mengembalikan 'TypeError: objek 'bool' tidak boleh dipanggil'?

Barbara Streisand
Barbara Streisandasal
2024-12-16 06:54:16203semak imbas

Why Does My Flask View Return

"TypeError: objek 'bool' tidak boleh dipanggil" dalam Flask Views: Menyelesaikan masalah

Pengenalan

Apabila menyahpepijat paparan Flask yang mencetuskan status 500, pembangun boleh menghadapi ralat misteri "TypeError: objek 'bool' tidak boleh dipanggil." Artikel ini menyelidiki punca ralat ini dan menyediakan penyelesaian.

Memahami Ralat

Pandangan kelalang boleh mengembalikan pelbagai jenis, termasuk rentetan, objek Respons Kelalang, tupel daripada (rentetan, status, pengepala) dan aplikasi WSGI. Walau bagaimanapun, jika nilai yang dikembalikan tidak sepadan dengan mana-mana jenis yang dijangkakan, Flask mentafsirkannya sebagai aplikasi WSGI.

Punca Ralat

Dalam contoh yang disediakan, paparan mengembalikan Benar untuk menunjukkan log masuk yang berjaya. Walau bagaimanapun, nilai bool True bukanlah aplikasi WSGI yang sah. Akibatnya, Flask menganggap ia adalah aplikasi WSGI dan cuba memanggilnya, mengakibatkan ralat "TypeError: objek 'bool' tidak boleh dipanggil."

Penyelesaian

Untuk menyelesaikan isu ini, paparan mesti mengembalikan salah satu jenis respons yang sah seperti yang dinyatakan dalam dokumentasi Flask: Perihal Respons. Dalam kes ini, mengembalikan objek Respons dengan kod status 200 dan mesej yang menunjukkan log masuk berjaya adalah sesuai.

@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 Response("Login successful", status=200)

    return Response("Login failed", status=401)

Dengan memastikan paparan mengembalikan jenis respons yang sah, pembangun boleh menghalang "TypeError : objek 'bool' tidak boleh dipanggil" ralat dan meningkatkan kebolehpercayaan aplikasi Flask mereka.

Atas ialah kandungan terperinci Mengapa Pandangan Flask Saya Mengembalikan 'TypeError: objek 'bool' tidak boleh dipanggil'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn