使用 Jinja2 模板
Jinja2 是一个现代的,设计者友好的,仿照 Django 模板的 Python 模板语言。
官网地址:http://docs.jinkan.org/docs/jinja2/index.html
示例:
jinja
<title>{% block title %}{% endblock %}</title>
<ul>
{% for user in users %}
<li><a href="{{ user.url }}">{{ user.username }}</a></li>
{% endfor %}
</ul>
1. 安装 Jinja2
bash
pip install Jinja2
2. 使用
咱们先新建一个 apps
目录,然后在 apps
目录中新建一个 templates
目录;用于存放 jinja2 模板文件
新建一个 apps/templates/index.html
文件:
jinja
{% for i in range(10) %}
<h1>{{ msg }}</h1>
{% endfor %}
然后修改一下 server.py
文件:
python
from sanic import Sanic
from sanic import response
from jinja2 import Environment, PackageLoader
app = Sanic('MyAPP')
jinja2 = Environment(loader=PackageLoader('apps', 'templates'))
@app.get('/')
async def hello_world(request):
template = jinja2.get_template('index.html')
context = {
'msg': 'Hello, world.'
}
html = template.render(**context)
return response.html(html)
if __name__ == '__main__':
app.run(debug=True, auto_reload=True)
重点是这几个:
jinja2 模板的引入
pythonjinja2 = Environment(loader=PackageLoader('apps', 'templates')) # ... template = jinja2.get_template('index.html')
模板变量的传入
pythonhtml = template.render(**context)
以 html 格式进行响应
pythonreturn response.html(html)
此时再次访问 http://127.0.0.1:8000 就能看到 10 个比之前更大的 Hello, world.
了