Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Apl Flask Saya Membuang Ralat `TemplateNotFound`, Walaupun Fail Templat Saya Wujud?

Mengapa Apl Flask Saya Membuang Ralat `TemplateNotFound`, Walaupun Fail Templat Saya Wujud?

Susan Sarandon
Susan Sarandonasal
2024-12-13 19:02:11964semak imbas

Why Does My Flask App Throw a `TemplateNotFound` Error, Even Though My Template File Exists?

Menyelesaikan Masalah Ralat TemplateNotFound Flask

Apabila cuba untuk memaparkan templat dalam Flask, seperti 'home.html', anda mungkin menghadapi ' ralat jinja2.exceptions.TemplateNotFound' walaupun terdapat fail. Memahami sebab perkara ini berlaku dan menyelesaikan isu adalah penting untuk pemaparan templat yang berjaya.

Punca:

Sebab utama ralat ini ialah Flask tidak dapat mengesan fail templat yang ditentukan dalam direktori templat lalainya, iaitu 'templat'. Secara lalai, Flask mencari templat dalam subdirektori ini bersama-sama modul Python tempat apl Flask ditakrifkan.

Penyelesaian:

Pastikan templat 'home.html' diletakkan di tempat yang betul. Ia sepatutnya berada dalam subdirektori 'template' bersebelahan dengan modul Python.

Pertimbangan Tambahan:

  • Jika apl Flask ialah pakej, 'templat ' folder mesti dibuat dalam direktori pakej.
  • Jika anda telah menamakan folder templat anda secara berbeza, anda boleh menentukan lokasinya menggunakan 'app.py'. Sebagai contoh, 'app = Flask(__name__, template_folder='template')' akan menggunakan direktori 'template'.
  • Flask menyediakan pilihan 'EXPLAIN_TEMPLATE_LOADING' untuk mendapatkan maklumat terperinci tentang percubaan carian templat. Ini boleh membantu untuk penyahpepijatan.

Contoh Struktur Templat:

  • Untuk apl tidak berpakej:
myproject/
    app.py
    templates/
        home.html
  • Untuk berbungkus app:
myproject/
    mypackage/
        __init__.py
        templates/
            home.html

Dengan mengikut garis panduan ini, anda boleh menyelesaikan ralat TemplateNotFound dengan berkesan dan menjadikan templat anda seperti yang dimaksudkan.

Atas ialah kandungan terperinci Mengapa Apl Flask Saya Membuang Ralat `TemplateNotFound`, Walaupun Fail Templat Saya Wujud?. 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