no.3_template_and_url模板渲染和URL
1 main.py代码
# https://fastapi.tiangolo.com/advanced/templates/
# pip install jinja2 -i http://pypi.douban.com/simple --trusted-host=pypi.douban.com
# pip install aiofiles -i http://pypi.douban.com/simple --trusted-host=pypi.douban.com
#####################################
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})
######################################
if __name__=='__main__':
import uvicorn
uvicorn.run(app,host='127.0.0.1',port=8000)
# uvicorn main:app --reload
2 新建templates/item.html
<body>
<h1>HELLO FastAPI...</h1>
<h1>{{ hello }}</h1>
<h1>{{ id }}</h1>
</body>
3 测试
http://127.0.0.1:8000/items/hello world