"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > StaticFiles를 사용하여 FastAPI의 루트 경로에 사용자 정의 HTML 파일을 제공하는 방법은 무엇입니까?

StaticFiles를 사용하여 FastAPI의 루트 경로에 사용자 정의 HTML 파일을 제공하는 방법은 무엇입니까?

2024년 11월 11일에 게시됨
검색:198

How to Serve a Custom HTML File in FastAPI's Root Path with StaticFiles?

StaticFiles를 사용하는 동안 FastAPI 루트 경로에서 특정 HTML 파일을 제공하는 방법

StaticFiles와 함께 FastAPI를 사용하여 정적 파일을 제공하는 경우 기본 index.html 대신 루트 경로에 다른 HTML 파일(예: custom.html)을 로드하려는 시나리오가 발생할 수 있습니다. 이는 FastAPI의 라우팅 및 StaticFiles 기능의 특정 측면을 이해함으로써 달성할 수 있습니다.

StaticFiles 이해

Starlette의 문서에 따르면 StaticFiles는 다음에서 정적 파일 제공을 처리하는 미들웨어입니다. 지정된 디렉토리. html=True가 설정되면 자동으로 디렉터리에서 index.html 파일을 찾아 그에 따라 제공합니다.

마운팅 순서

StaticFiles 마운트 순서 및 정의 엔드포인트는 중요한 역할을 합니다. StaticFiles가 루트 경로(예: /)에 마운트되고 엔드포인트보다 먼저 정의된 경우 나중에 사용자 정의 엔드포인트가 정의되더라도 이 파일이 우선 적용되어 모든 요청을 처리합니다.

루트 경로 사용자 정의

루트 경로에서 특정 HTML 파일을 제공하려면 다음을 따라야 합니다. 단계:

  1. StaticFiles를 별도의 경로(예: /static)에 마운트:

    app.mount('/static', StaticFiles(directory='static'))
  2. 원하는 HTML을 반환하는 사용자 정의 엔드포인트 생성 파일:

    @app.get('/')
    async def index():
        return FileResponse('custom.html')
  3. 엔드포인트 우선순위를 보장하려면 사용자 정의 엔드포인트를 정의한 후 StaticFiles를 마운트하세요.

추가 고려 사항

  • custom.html이 StaticFiles 마운트에 지정된 올바른 디렉토리에 있는지 확인하세요. 경로.
  • StaticFiles가 요청을 처리하고 요청된 경로가 있는 파일을 찾지 못하면 404 찾을 수 없음 응답을 반환한다는 점을 이해하세요.
  • FileResponse 대신 템플릿을 사용하면 다음에 대한 유연성이 더 높아집니다. HTML 파일을 동적으로 업데이트합니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3