FastAPI 侧重于做API接口,因此并没有提供模板渲染功能,但依然可以借助第三方模板工具来开发网站,本文介绍FastAPI结合jinjia2来开发网站的具体配置方法。
jinja2 是模仿django 模板的python模板语言,Flask 的模板渲染引擎就选的jinjia2,安装方法
pip install jinja2
创建miniweb 项目,项目结构如下
miniweb
│ app.py
│ __init__.py
│
└─templates
welcome.html
welcome.html 里的内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>welcome</title>
</head>
<body>
<p>welcome </p>
</body>
</html>
app.py里的内容
from fastapi import FastAPI
from starlette.templating import Jinja2Templates
from starlette.requests import Request
app = FastAPI()
template = Jinja2Templates(directory='templates') # 创建模板对象
@app.get('/welcome/{name}')
def welcome(name: str, request: Request):
return template.TemplateResponse('welcome.html', {'name': name, 'request': request})
启动服务
uvicorn app:app --reload
在浏览器里访问 http://127.0.0.1:8000/welcome/coolpython, 得到的响应结果
welcome coolpython
想要使用jinja2模板,在返回TemplateResponse对象时,必须传request, 否则就会报错。
关于jinja2模板的使用,可以参考我的Flask模板教程
QQ交流群: 211426309