Как вернуть HTMLResponse с помощью FastAPI

#python #web #fastapi

#python #паутина #fastapi

Вопрос:

Можно ли отобразить HTML-файл в конечной точке?

Например, домашняя страница, которую посещает пользователь "/" ?

Ответ №1:

Да, возможно, у HTMLResponse FastAPI есть .

Вы можете вернуть HTMLResponse

 from fastapi import FastAPI
from fastapi.responses import HTMLResponse

app = FastAPI()

@app.get("/", response_class=HTMLResponse)
async def read_items():
    html_content = """
    <html>
        <head>
            <title>Some HTML in here</title>
        </head>
        <body>
            <h1>Look ma! HTML!</h1>
        </body>
    </html>
    """
    return HTMLResponse(content=html_content, status_code=200)
 

Вы также можете отображать шаблоны с помощью Jinja2

 from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates

app = FastAPI()

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


templates = Jinja2Templates(directory="templates")


@app.get("/items/{id}", response_class=HTMLResponse)
async def read_item(request: Request, id: str):
    return templates.TemplateResponse("item.html", {"request": request, "id": id}