Предполагая, что ваше приложение Flask определено в app/__init__.py
, я думаю, что ваша структура шаблонов должна быть
app/
templates/
errors/
500.html
handlers.py
sales/
templates/
__init__.py
То есть, если вы не указали папку шаблона при инициализации app / blueprint.См. help(flask.Flask)
:param template_folder: the folder that contains the templates that should
be used by the application. Defaults to
``'templates'`` folder in the root path of the
application.```
РЕДАКТИРОВАТЬ: Чтобы добавить ясности
Вы можете переопределить шаблоны модулей в главном каталоге шаблонов вашего приложения.Вы не можете переопределить основные шаблоны вашего приложения в модуле (без использования некоторых базовых операций jinja).Поэтому, если ваша структура выглядит следующим образом:
app/
templates/
errors/
500.html
handlers.py
sales/
templates/
errors/
500.html
__init__.py
План продаж app_errorhandler
переопределит ваши приложения errorhandler
, но при попытке визуализации errors/500.html
будет отображаться app/templates/errors/500.html
.Я считаю, что это сделано специально для того, чтобы разрешить переопределение шаблонов модулей сторонних производителей.
Лучшее соглашение - вкладывать шаблоны модулей в имя модуля, например такую структуру:
app/
templates/
errors/
500.html
handlers.py
sales/
templates/
sales/
errors/
500.html
__init__.py
Тогда ваш план продаж может обрабатывать свои собственные 500 ошибок, например
@bp.app_errorhandler(500)
def internal_error(error):
return render_template('sales/errors/500.html'), 500
Тогда, если вы действительно этого хотите или можете, вы можете переопределить шаблоны ошибок модуля продаж
app/
templates/
sales/
errors/
500.html
errors/
500.html
handlers.py
sales/
templates/
sales/
errors/
500.html
__init__.py