官方文档

  • Flask中使用Jinja2模板引擎
  • 优点
    • 速度快,被广泛使用
    • HTML设计和后端Python分离
    • 减少Python复杂度
    • 非常灵活、快速和安全
    • 提供了控制、继承等高级功能

模板语法

  • 变量
    • 模板中的变量 {{ var }}
      • 视图传递给模板的数据
      • 前面定义出来的数据
      • 变量不存在默认忽略
  • 标签
    • 模板中的标签 {% 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 排序

发表回复