«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как создать собственную страницу 404 в FastAPI?

Как создать собственную страницу 404 в FastAPI?

Опубликовано 26 ноября 2024 г.
Просматривать:100

How to Create a Custom 404 Page in FastAPI?

Как вернуть пользовательскую страницу 404 Not Found с помощью FastAPI?

Введение

При создании веб-приложений это очень важно для правильной обработки кодов состояния HTTP. Один из распространенных кодов состояния, с которым вы можете столкнуться, — это 404 Not Found, который указывает, что запрошенный ресурс не найден. В этой статье будут рассмотрены различные методы возврата пользовательской страницы 404 с использованием FastAPI, современной платформы Python для создания веб-API.

Подход с обработчиком исключений

FastAPI предоставляет удобный способ для обработки исключений с помощью механизма обработки исключений. Вы можете определить собственный обработчик для обработки исключения 404 и возврата специального ответа.

@app.exception_handler(404)
async def not_found_exception_handler(request: Request, exc: HTTPException):
    return RedirectResponse('https://fastapi.tiangolo.com')

В качестве альтернативы вы можете использовать параметрException_handlers класса FastAPI для регистрации глобального обработчика исключений.

async def not_found_error(request: Request, exc: HTTPException):
    return RedirectResponse('https://fastapi.tiangolo.com')

exception_handlers = {404: not_found_error}
app = FastAPI(exception_handlers=exception_handlers)

Подход промежуточного программного обеспечения

Другой подход заключается в создании промежуточного программного обеспечения, которое перехватывает HTTP-ответы и проверяет код состояния. Если код состояния — 404, промежуточное программное обеспечение может вернуть специальный ответ до того, как ответ достигнет клиента.

@app.middleware("http")
async def redirect_on_not_found(request: Request, call_next):
    response = await call_next(request)
    if response.status_code == 404:
        return RedirectResponse("https://fastapi.tiangolo.com")
    else:
        return response

Ответ пользовательской страницы

Используя методы, упомянутые выше, вы можете вернуть простой ответ перенаправления. Однако вы также можете создать более персонализированную страницу 404, определив шаблон и вернув TemplateResponse.

from fastapi.templating import Jinja2Templates

templates = Jinja2Templates(directory='templates')

async def not_found_error(request: Request, exc: HTTPException):
    return templates.TemplateResponse('404.html', {'request': request}, status_code=404)

В каталоге шаблонов создайте шаблон 404.html с нужным содержанием для вашей пользовательской страницы 404.

Вывод

Используя обработчики исключений, промежуточное программное обеспечение или настраиваемые ответы страниц, вы можете легко реализовать собственную страницу 404 Not Found в FastAPI. Это позволяет вам обеспечить более удобный интерфейс, когда запрошенный ресурс не может быть найден, улучшая общее удобство использования вашего веб-приложения.

Заявление о выпуске Эта статья воспроизводится: 1729691392 Если есть какие -либо нарушения, пожалуйста, свяжитесь с [email protected], чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3