소개
웹 애플리케이션을 만들 때 필수적입니다. HTTP 상태 코드를 적절하게 처리합니다. 발생할 수 있는 일반적인 상태 코드 중 하나는 404 Not Found입니다. 이는 요청한 리소스를 찾을 수 없음을 나타냅니다. 이 기사에서는 웹 API 구축을 위한 최신 Python 프레임워크인 FastAPI를 사용하여 사용자 정의 404 페이지를 반환하는 다양한 방법을 살펴봅니다.
예외 처리기 접근 방식
FastAPI는 편리한 방법을 제공합니다. 예외 처리 메커니즘을 통해 예외를 처리합니다. 404 예외 처리를 위한 사용자 정의 핸들러를 정의하고 사용자 정의 응답을 반환할 수 있습니다.
<code class="python">@app.exception_handler(404) async def not_found_exception_handler(request: Request, exc: HTTPException): return RedirectResponse('https://fastapi.tiangolo.com')</code>
또는 FastAPI 클래스의 예외_핸들러 매개변수를 사용하여 전역 예외 핸들러를 등록할 수 있습니다.
<code class="python">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)</code>
미들웨어 접근 방식
또 다른 접근 방식은 HTTP 응답을 가로채고 상태 코드를 확인하는 미들웨어를 만드는 것입니다. 상태 코드가 404인 경우 미들웨어는 응답이 클라이언트에 도달하기 전에 사용자 정의 응답을 반환할 수 있습니다.
<code class="python">@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</code>
사용자 정의 페이지 응답
위에 언급된 방법 사용 , 간단한 리디렉션 응답을 반환할 수 있습니다. 그러나 템플릿을 정의하고 TemplateResponse를 반환하여 보다 사용자 정의된 404 페이지를 생성할 수도 있습니다.
<code class="python">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)</code>
templates 디렉토리에서 사용자 정의 404 페이지에 대해 원하는 콘텐츠가 포함된 404.html 템플릿을 생성합니다.
결론
예외 처리기, 미들웨어 또는 사용자 정의 페이지 응답을 활용하면 FastAPI에서 사용자 정의 404 Not Found 페이지를 쉽게 구현할 수 있습니다. 이를 통해 요청한 리소스를 찾을 수 없을 때 더욱 사용자 친화적인 환경을 제공할 수 있어 웹 애플리케이션의 전반적인 사용자 환경이 향상됩니다.
위 내용은 FastAPI에서 사용자 정의 404 페이지를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!