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'?

DDD
DDDasal
2024-12-18 03:42:20870semak imbas

Why Does My Flask View Return a

Memahami TypeError: objek 'bool' tidak boleh dipanggil dalam Flask Views

Apabila menyahpepijat paparan dalam Flask yang mengembalikan status 500 dengan ralat "TypeError: objek 'bool' tidak boleh dipanggil," adalah penting untuk memahami nilai pulangan yang dijangkakan fungsi paparan.

Dalam Flask, paparan harus mengembalikan salah satu daripada yang berikut:

  • Rentetan
  • Objek respons (atau subkelas)
  • Satu tuple (rentetan, status, pengepala) atau (rentetan, status)
  • WSGI yang sah aplikasi

Isu timbul apabila pandangan mengembalikan nilai boolean, seperti Benar atau Salah, yang disalah anggap sebagai aplikasi WSGI. Flask menyemak untuk tiga pilihan pertama dan menganggap yang keempat jika tiada sepadan.

Untuk menyelesaikan ralat ini, pastikan fungsi paparan anda mengembalikan salah satu jenis yang sah yang disenaraikan di atas. Dalam contoh kod yang disediakan:

@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 flask.redirect(flask.url_for('home'))

    return flask.render_template('login.html')

Paparan log masuk kini mengembalikan objek Respons yang betul apabila log masuk berjaya (mengubah hala ke halaman utama) atau memaparkan templat apabila log masuk gagal. Dengan mematuhi jenis pemulangan yang betul, anda boleh mengelakkan ralat ini dan memastikan kelakuan yang betul bagi paparan Flask anda.

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