> 백엔드 개발 > 파이썬 튜토리얼 > 사용자 정의 HTML 파일을 FastAPI 루트 경로로 제공하는 방법은 무엇입니까?

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

Barbara Streisand
풀어 주다: 2024-11-12 01:49:01
원래의
663명이 탐색했습니다.

How to Serve a Custom HTML File as the FastAPI Root Path?

FastAPI 루트 경로로 사용자 정의 HTML 파일 제공

custom.html과 같은 사용자 정의 HTML 파일을 FastAPI 앱의 루트 경로로 렌더링하려고 합니다. 그러나 현재 설정으로 인해 기본 index.html이 대신 반환됩니다.

Index.html 반환 원인

StaticFiles에 대한 Starlette 문서에 설명된 대로:

html - Run in HTML mode. Automatically loads index.html for directories if such file exists.
로그인 후 복사

해결책

이 문제를 해결하려면 두 가지 방법이 있습니다. 옵션:

1. StaticFiles를 다른 경로에 마운트:

StaticFiles 인스턴스를 /static과 같은 고유한 경로에 마운트합니다. 이렇게 하면 /static으로 시작하는 모든 경로가 StaticFiles 애플리케이션에서 처리됩니다.

app.mount('/static', StaticFiles(directory='static'), name='static')
로그인 후 복사

2. 엔드포인트 이후 StaticFiles 정의:

그래도 StaticFiles를 루트 경로(/)에 마운트하려면 모든 API 엔드포인트를 선언한 후 StaticFiles 인스턴스를 정의하세요. 이렇게 하면 엔드포인트가 StaticFiles보다 우선순위를 갖게 됩니다.

@app.get('/')
async def index():
    return FileResponse('static/custom.html')
로그인 후 복사
app.mount('/', StaticFiles(directory='static', html=True), name='static')
로그인 후 복사

html=True Option

html=True 인수를 사용하면 한 줄의 코드로 정적 웹 콘텐츠를 쉽게 제공할 수 있습니다. . 그러나 동적 HTML 파일과 추가 API 엔드포인트가 필요한 경우 템플릿을 사용하고 html=True를 사용하지 않고 StaticFiles를 다른 경로에 마운트하는 것이 좋습니다.

위 내용은 사용자 정의 HTML 파일을 FastAPI 루트 경로로 제공하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿