Атрибут template_folder
Атрибут template_folder применяется к объекту
Blueprint и указывает, из какой папки
брать Jinja-шаблоны при вызове функции
render_template внутри этого чертежа.
Значением атрибута является строка с путём к папке
относительно корня приложения. По умолчанию
используется значение 'templates', то есть
общая папка шаблонов приложения.
Когда чертёж зарегистрирован через метод
register_blueprint, Flask добавляет его
папку шаблонов в общий поиск. Если в чертеже
и в приложении есть шаблоны с одинаковым именем,
приоритет зависит от порядка регистрации.
Синтаксис
Blueprint(name, import_name, template_folder='templates')
Пример
Давайте создадим чертёж с собственной папкой
шаблонов 'bp/templates' и отрендерим из него
страницу:
from flask import Flask, Blueprint, render_template
app = Flask(__name__)
bp = Blueprint('bp', __name__, template_folder='bp/templates')
@bp.route('/')
def index():
return render_template('index.html')
app.register_blueprint(bp)
Теперь создадим сам шаблон:
<p>hello</p>
Результат выполнения кода:
<p>hello</p>
Пример
Давайте передадим переменную в шаблон чертежа и выведем её:
from flask import Flask, Blueprint, render_template
app = Flask(__name__)
bp = Blueprint('bp', __name__, template_folder='bp/templates')
@bp.route('/user')
def user():
return render_template('user.html', name='abcde')
app.register_blueprint(bp)
Шаблон чертежа:
<p>{{ name }}</p>
Результат выполнения кода:
<p>abcde</p>
Смотрите также
-
класс
Blueprint,
который создаёт чертёж приложения -
атрибут
static_folder,
который задаёт папку статических файлов чертежа -
атрибут
url_prefix,
который задаёт префикс URL для маршрутов чертежа -
метод
route,
который вешает обработчик на адрес внутри чертежа