在FastAPI中加载index.html
文件,你需要将HTML文件放在项目的合适位置,并使用FastAPI的FileResponse
或HTMLResponse
来返回HTML内容
FileResponse
templates
的文件夹(如果还没有的话)。index.html
文件放入templates
文件夹中。FileResponse
来返回index.html
文件:from fastapi import FastAPI
from fastapi.responses import FileResponse
app = FastAPI()
@app.get("/")
async def read_index_html():
return FileResponse("templates/index.html")
HTMLResponse
index.html
文件的内容读取到一个字符串变量中。HTMLResponse
来返回HTML内容:from fastapi import FastAPI
from fast茂response import HTMLResponse
app = FastAPI()
html_content = """
<!DOCTYPE html>
<html>
<head>
<title>FastAPI Index Page</title>
</head>
<body>
<h1>Welcome to FastAPI!</h1>
</body>
</html>
"""
@app.get("/")
async def read_index_html():
return HTMLResponse(content=html_content, media_type="text/html")
如果你希望使用更高级的模板功能,可以考虑使用Jinja2模板引擎。首先,安装jinja2
和aiofiles
库:
pip install jinja2 aiofiles
然后,创建一个名为templates
的文件夹,并在其中放置index.html
文件。接下来,在FastAPI应用中使用Jinja2Templates
类来加载和渲染模板:
from fastapi import FastAPI
from fastapi.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory="templates")
@app.get("/")
async def read_index_html(request: Request):
return templates.TemplateResponse("index.html", {"request": request})
在这个例子中,Jinja2Templates
类负责加载templates
文件夹中的模板文件。TemplateResponse
用于将渲染后的HTML内容返回给客户端。
无论你选择哪种方法,都需要确保FastAPI应用能够找到index.html
文件。根据你的项目结构和需求选择合适的方法。
领取专属 10元无门槛券
手把手带您无忧上云