Ви повинні створити файли шаблонів у правильному місці; у 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') # 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')
Креслення можуть також реєструвати власні каталоги шаблонів , але це не є вимогою, якщо ви використовуєте креслення, щоб полегшити розподіл більшого проекту на логічні блоки. У головному каталозі шаблону програми Flask завжди спочатку здійснюється пошук, навіть при використанні додаткових шляхів за проектом.
template_folder
шлях для кожного креслення .