使用模板有助于将业务逻辑与表现逻辑分开,更易于维护。模板是已经建立的网页代码,其中部分动态数据需要在请求的上下文中用具体值替换。
flask中使用了Jinja2模板引擎,储存在templates文件夹中。
templates/index.html
<h1>Hello World!</h1>
使用 {{ name }} 占位
templates/user.html <h1>Hello, {{ name }}!</h1>
模板的渲染
模板的渲染即用真实值取代模板中的占位变量的过程。
from flask import Flask,render_template @app.route(‘/‘) def index(): return render_template(‘index.html‘,name=name)
变量可以从列表、字典和对象获取。
<p>A value from a dict:{{ mydict[‘key‘] }}</p> <p>A value from a list:{{ mylist[3] }}</p> <p>A value from a list with a variable index:{{ mylist[intvar] }}</p> <p>A value from a object‘s method :{{ myobj.mymethod() }}</p>
使用过滤器修改变量:
{{ name|capitalize }}
常用过滤器:
过滤器名 | 说明 |
safe | 渲染时不转义 |
capitalize | 首字母大写,其他小写 |
lower | 小写 |
upper | 大写 |
title | 每个单词首字母大写 |
trim | 去掉首尾空格 |
striptags | 把值中所有html标签删掉 |
控制结构
{% if user %}
Hello,{{ user }}
{% else %}
Hello,Stranger!
{% endif %}
<ul> {% for comment in comments %} <li>{{ comment }}</li> {% endfor %} </ul>