二. FastAPI之模板渲染

1,712 阅读1分钟

模板渲染在很多网站中都是用到的。如果您想用FastAPI来开发网站的话,那么就可以学习本章内容。 当然了,FastAPI还是做API接口方面比较好,前端的页面模板还是交给专业的前端人员负责好点。但是FastAPI也是可以用来开发网站的。

  • FastAPI本身是没有自带模版渲染功能的,需要您借助于第三方的模版工具。
  • 借助于jinja2来做模版渲染。

安装模块

pip install jinja2

创建模板文件的存放路径

文件main.py内容如下:

from fastapi import FastAPI
from starlette.templating import Jinja2Templates
from starlette.requests import Request

app = FastAPI()

# 设置模板存放路径
template = Jinja2Templates(directory='templates')

@app.get('/')
async def index(request: Request): # async加了就支持异步  把Request赋值给request
    return template.TemplateResponse('index.html',{'request': request})


if __name__ == '__main__':
    import uvicorn
    uvicorn.run(app=app, host='127.0.0.1', port=8000)

main.py同级下创建一个templates文件夹。主要用来保存模板文件。

注意: template.TemplateResponse('index.html',{'request': request}) 一定要返回reqeust

模板文件

templates/index.html文件内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>

<b>asdfasdf</b>
</body>
</html>

运行查看效果

直接运行main.py文件即可。然后浏览器地扯栏输入: http://127.0.0.1:8000 即可看到效果。