>  기사  >  백엔드 개발  >  FastAPI 및 StaticFiles를 사용하여 루트 경로에서 특정 HTML 파일을 제공하는 방법은 무엇입니까?

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

Linda Hamilton
Linda Hamilton원래의
2024-11-12 05:34:01493검색

How to Serve a Specific HTML File on the Root Path Using FastAPI and StaticFiles?

StaticFiles와 함께 FastAPI의 루트 경로에서 사용자 정의 HTML 파일 제공

StaticFiles와 함께 FastAPI를 사용하는 동안 사용자 정의 HTML 파일 제공은 예상되는 동작. 기본 구성은 정적 파일 미들웨어가 루트 경로에 마운트되면 index.html을 자동으로 로드합니다. 그러나 다음 단계에 따라 이를 재정의하고 다른 HTML 파일을 렌더링할 수 있습니다.

정적 파일을 다른 경로에 마운트

index.html 로딩 문제를 방지하려면 , StaticFiles 인스턴스를 루트 대신 고유한 경로에 마운트합니다. 예를 들어 /static:

app.mount(
    "/static",
    StaticFiles(directory="static", html=True),
    name="static",
)

루트 경로 끝점 정의

다음으로 루트 경로를 처리할 사용자 지정 끝점을 만듭니다. 이 엔드포인트는 원하는 사용자 정의 HTML 파일을 반환합니다:

@app.get("/")
async def index():
    return FileResponse("static/custom.html", media_type="html")

정의 순서

정의 순서가 중요합니다. 루트 경로 엔드포인트를 정의하기 전에 StaticFiles를 마운트하면 StaticFiles 애플리케이션은 엔드포인트에 정의된 요청을 포함하여 루트 경로에 대한 모든 요청을 처리합니다.

적절한 순서의 예

정확한 정의 순서의 예는 다음과 같습니다.

from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from fastapi.responses import FileResponse

app = FastAPI()

@app.get("/")
async def index():
    return FileResponse("static/custom.html", media_type="html")

app.mount(
    "/static",
    StaticFiles(directory="static", html=True),
    name="static",
)

다음을 따르세요. 단계를 거치면 StaticFiles를 사용하여 정적 파일을 제공하는 동시에 FastAPI 애플리케이션의 루트 경로에 사용자 정의 HTML 파일을 제공할 수 있습니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.