Метод get_template
Метод get_template применяется к объекту
Jinja2Templates и возвращает шаблон
по его имени. Первым параметром передаётся
имя шаблона name в виде строки.
Метод ищет файл шаблона в директории,
указанной при создании объекта Jinja2Templates.
Возвращается объект Template,
у которого можно вызвать метод render
для получения готового HTML.
Синтаксис
templates.get_template(name)
Пример
Давайте получим шаблон 'index.html'
и отрендерим его с контекстом:
from fastapi import FastAPI
from fastapi.templating import Jinja2Templates
from fastapi.requests import Request
app = FastAPI()
templates = Jinja2Templates(directory='templates')
@app.get('/')
def index(request: Request):
template = templates.get_template('index.html')
html = template.render({'name': 'user'})
return templates.TemplateResponse(
request=request,
name='index.html',
context={'name': 'user'}
)
Файл шаблона 'templates/index.html':
<!DOCTYPE html>
<html>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
Результат выполнения кода:
<!DOCTYPE html>
<html>
<body>
<h1>Hello, user!</h1>
</body>
</html>
Пример
Давайте получим шаблон и проверим его имя
через атрибут name:
<+python+>
from fastapi import FastAPI
from fastapi.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory='templates')
@app.get('/')
def index():
template = templates.get_template('article.html')
return {'template_name': template.name}
<-python+>
Результат выполнения кода:
{"template_name": "article.html"}
Смотрите также
-
класс
Jinja2Templates,
который управляет шаблонами Jinja2 в FastAPI -
метод
TemplateResponse,
который возвращает готовый HTML-ответ из шаблона -
атрибут
env,
который хранит окружение Jinja2 -
параметр
context,
который передаёт данные в шаблон