आपको अपनी टेम्पलेट फ़ाइलों को सही स्थान पर बनाना होगा; templates
अपने अजगर मॉड्यूल के बगल में उपनिर्देशिका में ।
त्रुटि इंगित करती है कि निर्देशिका home.html
में कोई फ़ाइल नहीं है templates/
। सुनिश्चित करें कि आपने उस निर्देशिका को अपने अजगर मॉड्यूल के समान निर्देशिका में बनाया है, और आपने वास्तव home.html
में उस उपनिर्देशिका में एक फ़ाइल डाल दी है । यदि आपका ऐप एक पैकेज है, तो पैकेज के अंदर टेम्प्लेट फ़ोल्डर बनाया जाना चाहिए ।
myproject/
app.py
templates/
home.html
myproject/
mypackage/
__init__.py
templates/
home.html
वैकल्पिक रूप से, यदि आपने अपने टेम्प्लेट फ़ोल्डर को इसके अलावा कुछ नाम दिया है templates
और इसे डिफ़ॉल्ट रूप से नाम बदलना नहीं चाहते हैं, तो आप फ्लास्क को अन्य निर्देशिका का उपयोग करने के लिए कह सकते हैं।
app = Flask(__name__, template_folder='template') # still relative to module
आप फ्लास्क से पूछ सकते हैं कि यह समझाने के लिए कि उसने 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')
ब्लूप्रिंट अपने स्वयं के टेम्प्लेट निर्देशिकाओं को भी पंजीकृत कर सकते हैं, लेकिन यह एक आवश्यकता नहीं है यदि आप ब्लूप्रिंट का उपयोग कर रहे हैं ताकि तार्किक इकाइयों में एक बड़ी परियोजना को विभाजित करना आसान हो सके। मुख्य फ्लास्क ऐप टेम्प्लेट डायरेक्टरी हमेशा ब्लूप्रिंट प्रति अतिरिक्त पथों का उपयोग करते हुए हमेशा सबसे पहले खोजी जाती है।
template_folder
पथ निर्धारित किया है ।