第13节,FastAPI 使用jinja2模板

1. jinja2

FastAPI 侧重于做API接口,因此并没有提供模板渲染功能,但依然可以借助第三方模板工具来开发网站,本文介绍FastAPI结合jinjia2来开发网站的具体配置方法。

jinja2 是模仿django 模板的python模板语言,Flask 的模板渲染引擎就选的jinjia2,安装方法

pip install jinja2

2. FastAPI 使用jinjia2模板

创建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

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案