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

Linda Hamilton
Lepaskan: 2024-12-10 06:02:10
asal
931 orang telah melayarinya

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

Flask View TypeError: 'bool' Object Not Callable

Dalam Flask, paparan dijangka akan mengembalikan jenis data tertentu, iaitu: rentetan, Objek respons, tuple rentetan dan kod status, atau aplikasi WSGI yang sah. Walau bagaimanapun, mengembalikan nilai boolean boleh membawa kepada ralat: TypeError: objek 'bool' tidak boleh dipanggil.

Ini berlaku apabila fungsi pandangan, bukannya mengembalikan salah satu jenis data yang disebutkan di atas, mengembalikan boolean (True atau Palsu). Flask mentafsir boolean ini sebagai aplikasi WSGI dan cuba memanggilnya, mengakibatkan ralat.

Untuk menyelesaikan isu ini, pastikan fungsi paparan mengembalikan salah satu jenis data yang disokong. Dalam sampel kod yang diberikan, paparan mengembalikan True selepas berjaya melog masuk pengguna:

@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
Salin selepas log masuk

Untuk membetulkannya, ia harus mengembalikan rentetan, objek Respons atau tuple dan bukannya boolean:

@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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan