- Flask中使用Jinja2模板引擎
- 优点
- 速度快,被广泛使用
- HTML设计和后端Python分离
- 减少Python复杂度
- 非常灵活、快速和安全
- 提供了控制、继承等高级功能
模板语法
- 变量
- 模板中的变量 {{ var }}
- 视图传递给模板的数据
- 前面定义出来的数据
- 变量不存在默认忽略
- 模板中的变量 {{ var }}
- 标签
- 模板中的标签 {% tag %}
- 控制逻辑
- 使用外部表达式
- 创建变量
- 宏定义
- 模板中的标签 {% tag %}
结构标签
- block
- 语法:开始 {% block ** %} 结束 {% endblock %}
- 块操作
- 父模板挖坑,子模版填坑
- extends
- 语法:{% extends ** %}
- 继承后保留块中的内容
- {{ super() }}
- include
- 语法:{% include ** %}
- 包含,将其它html包含进来,体现的是由零到一的概念
- marco
- 语法:{% marco hello(name) %} {{name}} {% endmarco %}
- 宏定义,可以在模板中定义函数,在其它地方调用
- 宏定义可导入
- 语法:{% from ** import ** %}
循环
可以使用和Python一样的for…else亦可以使用循环获取信息loop
loop.first loop.last loop.index loop.revindex
- for 语法
- {% for item in items %}
- {{ item }}
- {% else %}
- **
- {% endfor %}
过滤器
- 语法:
- {{ 变量|过滤器|过滤器… }}
- 过滤器并不是先写先执行,safe是最后做的
- capitalize 驼峰命名
- lower 小写
- upper 大写
- title 标题
- trim 去掉前后空格
- reverse 反转
- fromat 格式化
- striptags渲染之前,将值中标签去掉
- safe 安全
- default 默认
- last 最后一个
- first 第一个
- length 长度
- sum 总和
- sort 排序