РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
203 of 307 menu

Атрибут env

Атрибут env применяется к экземпляру класса Jinja2Templates и предоставляет доступ к объекту окружения Jinja2. Через этот атрибут можно настраивать загрузчики шаблонов, добавлять глобальные переменные, регистрировать фильтры и тесты, а также изменять другие параметры окружения. Атрибут создаётся автоматически при инициализации класса на основе переданной директории с шаблонами.

Синтаксис

templates = Jinja2Templates(directory='templates') templates.env

Пример

Давайте создадим экземпляр класса Jinja2Templates и выведем тип объекта окружения:

from fastapi import FastAPI from fastapi.templating import Jinja2Templates app = FastAPI() templates = Jinja2Templates(directory='templates') @app.get('/') def index(): res = type(templates.env).__name__ return {'env_type': res}

Результат выполнения кода:

{"env_type": "Environment"}

Пример

Давайте добавим глобальную переменную через атрибут env, чтобы она была доступна во всех шаблонах:

from fastapi import FastAPI from fastapi.templating import Jinja2Templates app = FastAPI() templates = Jinja2Templates(directory='templates') templates.env.globals['site_name'] = 'abcde' @app.get('/') def index(): return {'site': templates.env.globals['site_name']}

Результат выполнения кода:

{"site": "abcde"}

Пример

Давайте зарегистрируем собственный фильтр через атрибут env и применим его в шаблоне:

from fastapi import FastAPI, Request from fastapi.templating import Jinja2Templates app = FastAPI() templates = Jinja2Templates(directory='templates') def double(value): return value * 2 templates.env.filters['double'] = double @app.get('/') def index(request: Request): return templates.TemplateResponse( request=request, name='index.html', context={'name': 'user'} )

Содержимое файла templates/index.html:

<p>{{ name | double }}</p>

Результат выполнения кода:

<p>useruser</p>

Смотрите также

  • класс Jinja2Templates,
    который управляет шаблонами Jinja2
  • метод TemplateResponse,
    который возвращает ответ на основе шаблона
  • метод get_template,
    который загружает шаблон по имени
  • параметр name,
    который задаёт имя шаблона
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить