คุณต้องสร้างไฟล์เทมเพลตของคุณในตำแหน่งที่ถูกต้อง ในtemplates
ไดเร็กทอรีย่อยถัดจากโมดูล python ของคุณ
ข้อผิดพลาดระบุว่าไม่มีhome.html
ไฟล์ในtemplates/
ไดเร็กทอรี ตรวจสอบให้แน่ใจว่าคุณได้สร้างไดเร็กทอรีนั้นในไดเร็กทอรีเดียวกับโมดูล python ของคุณและคุณได้ใส่home.html
ไฟล์ในไดเร็กทอรีย่อยนั้น หากแอปของคุณเป็นแพ็กเกจควรสร้างโฟลเดอร์เทมเพลตภายในแพ็กเกจ
myproject/
app.py
templates/
home.html
myproject/
mypackage/
__init__.py
templates/
home.html
หรือหากคุณตั้งชื่อโฟลเดอร์เทมเพลตเป็นอย่างอื่นtemplates
และไม่ต้องการเปลี่ยนชื่อเป็นค่าเริ่มต้นคุณสามารถบอกให้ Flask ใช้ไดเร็กทอรีอื่นนั้นได้
app = Flask(__name__, template_folder='template')
คุณสามารถขอขวดที่จะอธิบายถึงวิธีการที่จะพยายามที่จะหาแม่แบบที่กำหนดโดยการตั้งค่าEXPLAIN_TEMPLATE_LOADING
ตัวเลือกTrue
ที่จะ ทุกเทมเพลตโหลดคุณจะได้รับรายงานที่บันทึกลงในขวดapp.logger
INFO
ที่ระดับ
นี่คือสิ่งที่ดูเหมือนว่าเมื่อการค้นหาประสบความสำเร็จ ในตัวอย่างนี้foo/bar.html
เทมเพลตขยายbase.html
เทมเพลตดังนั้นจึงมีการค้นหาสองครั้ง:
[2019-06-15 16:03:39,197] INFO in debughelpers: Locating template "foo/bar.html":
1: trying loader of application "flaskpackagename"
class: jinja2.loaders.FileSystemLoader
encoding: 'utf-8'
followlinks: False
searchpath:
- /.../project/flaskpackagename/templates
-> found ('/.../project/flaskpackagename/templates/foo/bar.html')
[2019-06-15 16:03:39,203] INFO in debughelpers: Locating template "base.html":
1: trying loader of application "flaskpackagename"
class: jinja2.loaders.FileSystemLoader
encoding: 'utf-8'
followlinks: False
searchpath:
- /.../project/flaskpackagename/templates
-> found ('/.../project/flaskpackagename/templates/base.html')
พิมพ์เขียวสามารถลงทะเบียนไดเร็กทอรีเทมเพลตของตนเองได้เช่นกัน แต่นี่ไม่ใช่ข้อกำหนดหากคุณใช้พิมพ์เขียวเพื่อให้ง่ายต่อการแยกโปรเจ็กต์ขนาดใหญ่ข้ามหน่วยตรรกะ ไดเรกทอรีเทมเพลตหลักของแอป Flask จะถูกค้นหาก่อนเสมอแม้ว่าจะใช้เส้นทางเพิ่มเติมต่อพิมพ์เขียวก็ตาม
./Templates/index.html
ได้ แต่เมื่อฉันปรับใช้กับ heroku (คิดว่ามันเป็น Python เดียวกันเวอร์ชันไลบรารีเดียวกันรวมถึงรุ่น Flask เดียวกัน แต่ heroku เป็น Unix); และโยนTemplateNotFound
ข้อผิดพลาด หลังจากที่ฉันเปลี่ยนชื่อโฟลเดอร์git mv Templates/index.html templates/index.html
ทั้งเวอร์ชันในเครื่อง (Windows) และเวอร์ชัน heroku (Unix) ใช้งานได้