侧边栏壁纸
博主头像
fynn博主等级

我们应该有恒心,尤其是要有自信心,必须相信自己是有能力的,而且要不惜任何代价把这种能力发挥出来。

  • 累计撰写 50 篇文章
  • 累计创建 21 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Sanic使用Jinja2模板

fynn
2022-11-08 / 0 评论 / 0 点赞 / 2,388 阅读 / 270 字 / 正在检测是否收录...

新建项目模板

微信截图_20221108231343

安装库

pip3 install Jinja2 sanic sanic_cors

我使用的库版本:

  • Jinja2==3.1.2
  • sanic==22.9.1
  • sanic_cors==2.2.0

编写扩展插件

exp.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# File    : ext.py
from os.path import abspath, dirname, join

from sanic import HTTPResponse
from sanic.response import html

from jinja2 import Environment, FileSystemLoader

base_dir = abspath(dirname(__file__))
templates_dir = join(base_dir, 'templates')
jinja_env = Environment(loader=FileSystemLoader(templates_dir), autoescape=True)


def render_template(template_name: str, **context) -> HTTPResponse:
    template = jinja_env.get_template(template_name)
    return html(template.render(**context))

模板页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
名字: {{ name }}<br>
年龄: {{ age }}
</body>
</html>

入口页面

main.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# File    : main.py
from sanic import Sanic
from sanic.response import json
from sanic_cors import CORS
from ext import render_template

app = Sanic(__name__)

# 设置静态文件目录
app.static("/static", "./static")


@app.route("/")
async def index(request):
    return render_template("index.html", name="Jack", age=55)


if __name__ == '__main__':
    app.run(host='127.0.0.1', port=8000, workers=4, debug=True)

微信截图_20221108233424
附件: ext.py

0

评论区