【发布时间】:2021-03-25 12:58:08
【问题描述】:
是否可以在端点显示 HTML 文件?
例如主页然后用户正在访问"/"?
【问题讨论】:
是否可以在端点显示 HTML 文件?
例如主页然后用户正在访问"/"?
【问题讨论】:
是的,FastAPI 可能有HTMLResponse。
您可以返回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}
【讨论】: