Параметр headers
Параметр headers применяется к классу
TemplateResponse и позволяет передать
словарь HTTP-заголовков, которые будут отправлены
клиенту вместе с отрендеренным HTML. Первым
параметром передаётся запрос request,
вторым - имя шаблона, третьим - контекст,
а headers задаётся именованным аргументом.
Это удобно для установки cookies, кэширования,
типа содержимого и других служебных заголовков.
Синтаксис
TemplateResponse(request, name, context, headers=headers)
Пример
Давайте отрендерим шаблон и передадим заголовок
X-Custom-Header:
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory='templates')
@app.get('/')
def index(request: Request):
headers = {'X-Custom-Header': 'abcde'}
return templates.TemplateResponse(
request, 'index.html', {'user': 'abcde'}, headers=headers
)
Результат выполнения кода содержит заголовок
X-Custom-Header: abcde вместе с HTML-страницей.
Пример
Давайте установим сразу несколько заголовков, включая заголовок кэширования:
<+python+>
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory='templates')
@app.get('/article')
def article(request: Request):
headers = {
'Cache-Control': 'no-cache',
'X-Article-Id': '1'
}
return templates.TemplateResponse(
request, 'article.html', {'title': 'article'}, headers=headers
)
<-python+>
Результат выполнения кода отдаёт страницу с заголовками
Cache-Control: no-cache и X-Article-Id: 1.
Смотрите также
-
метод
TemplateResponse,
который рендерит шаблон и возвращает HTML-ответ -
параметр
status_code,
который задаёт HTTP-код ответа шаблона -
параметр
media_type,
который задаёт тип содержимого ответа -
метод
get_template,
который возвращает объект шаблона по имени