Подтвердить что ты не робот

Где вы храните переменные в jinja?

У меня есть пять страниц с одинаковым макетом и структурой страницы, но некоторые разные цвета, текст и т.д., поэтому это идеальная среда для шаблонов. Я решил использовать Jinja2 и, вероятно, колбу. Я прочитал документацию и несколько обучающих онлайн, которые объясняют много о том, что вы можете делать с шаблонами на странице, но не так много о том, как отправлять переменные на страницу.

  • Где вы храните переменные страницы?
  • Как код знает, какая страница была запрошена и какие переменные загружаются?
4b9b3361

Ответ 1

Здесь основное использование:

Сначала создайте шаблон

>>> from jinja2 import Template
>>> template = Template('Hello {{ name }}!')

Затем визуализируйте его, передав переменные

>>> template.render(name='John Doe')
u'Hello John Doe!'

Обычно вы захотите загрузить шаблоны из файлов вместо кода. Это более эффективно и оптимизировано и позволяет наследование шаблонов:

from jinja2 import Environment, PackageLoader
env = Environment(loader=PackageLoader('yourapplication', 'templates'))

Это будет искать шаблоны внутри папки templates пакета yourapplication Python, как установлено в пути Python. Вы можете использовать другие загрузчики для загрузки из определенной файловой системы или других мест.

Затем вы можете загрузить шаблон:

template = env.get_template('mytemplate.html')
print template.render(the='variables', go='here')

При использовании Flask все настроено для вас, поэтому вы можете просто использовать функцию Flask render_template, и она уже будет искать подпапку templates вашего приложения:

from flask import render_template

@app.route('/hello/')
def hello(name=None):
    return render_template('hello.html', name=name)

Обратите внимание на переменную шаблона (также называемую контекстом), передаваемую на render_template

Jinja имеет довольно хорошую документацию. Пожалуйста, прочитайте его. Не стесняйтесь задавать дополнительные вопросы.