Şablon dosyalarınızı doğru konumda oluşturmanız gerekir; içinde templates
alt dizine yanında piton modülüne.
Hata home.html
, templates/
dizinde dosya olmadığını gösterir . Bu dizini python modülünüzle aynı dizinde oluşturduğunuzdan ve aslında home.html
bu alt dizine bir dosya koyduğunuzdan emin olun . Uygulamanız bir paketse, şablonlar klasörü paketin içinde oluşturulmalıdır .
myproject/
app.py
templates/
home.html
myproject/
mypackage/
__init__.py
templates/
home.html
Alternatif olarak, şablonlar klasörünüze başka bir ad verdiyseniz templates
ve varsayılana yeniden adlandırmak istemiyorsanız, Flask'a o diğer dizini kullanmasını söyleyebilirsiniz.
app = Flask(__name__, template_folder='template')
EXPLAIN_TEMPLATE_LOADING
Seçeneği olarak ayarlayarak Flask'tan belirli bir şablonu nasıl bulmaya çalıştığını açıklamasını isteyebilirsiniz True
. Yüklenen her şablon için, Flask'aapp.logger
seviye olarak kaydedilmiş bir rapor alacaksınız INFO
.
Bir arama başarılı olduğunda böyle görünür; bu örnekte foo/bar.html
şablon şablonu genişletir base.html
, bu nedenle iki arama vardır:
[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')
Taslaklar kendi şablon dizinlerini de kaydedebilir , ancak daha büyük bir projeyi mantıksal birimler arasında bölmeyi kolaylaştırmak için planları kullanıyorsanız bu bir gereklilik değildir. Ana Flask uygulaması şablon dizini, plan başına ek yollar kullanıldığında bile her zaman ilk olarak aranır.
template_folder
yolu ayarladığınızdan emin olun .