Параметр status_code
Параметр status_code применяется в методе
TemplateResponse класса Jinja2Templates
и задаёт HTTP-код, который FastAPI вернёт клиенту
вместе с отрендеренным HTML-шаблоном.
По умолчанию используется код 200.
Параметр передаётся именованным аргументом
и принимает целое число.
Чаще всего status_code меняют на 404,
когда шаблон отдаётся для несуществующей страницы,
или на 201 при успешном создании сущности.
Синтаксис
templates.TemplateResponse(
name,
context,
status_code=200
)
Пример
Давайте отдадим шаблон с кодом ответа 404
для несуществующей страницы:
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory='templates')
@app.get('/article')
def article(request: Request):
return templates.TemplateResponse(
'index.html',
{'request': request},
status_code=404
)
Результат выполнения кода - HTML-страница
с HTTP-кодом 404:
HTTP/1.1 404 Not Found
content-type: text/html; charset=utf-8
Пример
Давайте отдадим шаблон с кодом ответа 201
при успешном создании сущности:
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory='templates')
@app.post('/user')
def create_user(request: Request):
return templates.TemplateResponse(
'user.html',
{'request': request, 'name': 'abcde'},
status_code=201
)
Результат выполнения кода - HTML-страница
с HTTP-кодом 201:
HTTP/1.1 201 Created
content-type: text/html; charset=utf-8
Смотрите также
-
метод
TemplateResponse,
который рендерит шаблон и возвращает ответ -
параметр
context,
который передаёт данные в шаблон -
параметр
headers,
который задаёт HTTP-заголовки ответа -
параметр
media_type,
который задаёт MIME-тип ответа