目录

  • 渲染模板
  • 语法
  • 过滤器
  • 代码复用
  • 特有变量及函数

渲染模板

用法:render_template(⽂件名,key=value)
模板文件一般默认路径为/templates下的文件,可通过key=value的方式往模板文件中传递参数,模板中使用{{key}}的方式获取参数。
例:

@app.route("/")
def index():........return render_template("index.html")

语法

获取变量:{{变量}}
if条件语句:{%if条件%}语句{%else%}语句{%endif%}
for循环:{%for 变量 in 容器%}语句{%endfor%}
for循环中特殊变量

变量 描述
loop.index 当前循环迭代的次数(从 1 开始)
loop.index0 当前循环迭代的次数(从 0 开始)
loop.revindex 到循环结束需要迭代的次数(从 1 开始)
loop.revindex0 到循环结束需要迭代的次数(从 0 开始)
loop.first 如果是第一次迭代,为 True 。
loop.last 如果是最后一次迭代,为 True 。
loop.length 序列中的项目数。
loop.cycle 在一串序列间期取值的辅助函数。见下面示例程序。

过滤器

1.系统自带过滤器:
字符串过滤器:
使用格式:{{字符串|过滤器}}

过滤器 描述
safe 禁用转义
capitalize 首字母大写,其余小写
lower 转换为小写
upper 转换为大写
title 每个单词首字母大写,其余小写
reverse 字符串反转
format 格式化输出
striptags 把HTML标签删掉

列表过滤器:
使用格式:{{列表|过滤器}}

过滤器 描述
first 取第一个元素
last 取最后一个元素
length 获取列表长度
sum 列表求和
sort 列表排序

语句块操作:

{% filter upper %}#一大堆文字#
{% endfilter %}

链式调用:

{{ "hello world" | reverse | upper }}

2.自定义过滤器:
直接添加到过滤器列表:

def do_listreverse(li):# 通过原列表创建一个新列表temp_li = list(li)# 将新列表进行返转temp_li.reverse()return temp_liapp.add_template_filter(do_listreverse,'lireverse')

使用装饰器添加:

@app.template_filter('lireverse')
def do_listreverse(li):# 通过原列表创建一个新列表temp_li = list(li)# 将新列表进行返转temp_li.reverse()return temp_li

代码复用

1.宏(macro):
(1)定义格式:{% macro 宏名(参数) %} {%endmacro%}
(2)使用格式:
当前文件:使⽤当前⽂件宏: {{ 宏名(参数) }}
其他文件:{% import ‘宏⽂件名’ as 别名%} {{ 别名.宏名(参数) }}

2.继承(extends):
(1)特点: 共性抽取, 代码复⽤
(2)格式: {% extends ‘⽗⽂件名’%}
(3)注意点:
父类:父类与子类可能不同的地方用block代码块写,方便子类重写
子类:可根据需求重写父类block代码块,可使用{{super()}}调用父类block内容

3.包含(include):
(1)特点:将⼀个⽂件的内容,完全拷⻉到另外⼀个⽂件中,不够灵活
(2)格式: {% include ‘⽂件名’ ignore missing%},ignore missing可不写,但是找不到目标文件会报错

特有变量及函数

1.特点: 不需要重flask程序⾥⾯,传递到模板就可以直接使⽤的
2.特殊变量及函数:

特殊变量/函数 描述
config app的配置对象,和flask⾥⾯的app.config是⼀回事
request 请求对象
g 应⽤上下⽂对象
url_for() 通过函数名,解析到所对应的路径
get_flashed_messages() 消耗, flash()⽅法⾥⾯存储的信息

flash存储数据的时候,⽤到了session所以需要设置SECRET_KEY

jinja2模板用法详解相关推荐

  1. PHP如何把三张图片均匀分布,C++ uniform_real_distribution连续均匀分布类模板用法详解...

    uniform_real_distribution 类模板定义了一个默认返回 double 型浮点值的连续分布.可以按如下方式生成一个返回值在范围 [0,10) 内的分布对象: std::unifor ...

  2. matlab中duration是什么意思,C++ duration(STL duration)模板用法详解

    duration (持续时间) 是定义为时间刻度数的时间间隔,可以指定一个时间刻度是多少秒.因此,时间刻度是衡量时间长短的基础.duration 模板的实例类型的对象定义了 duration.时间刻度 ...

  3. spring boot模板引擎thymleaf用法详解

    spring boot模板引擎thymleaf用法详解 Spring-boot支持FreeMarker.Thymeleaf.jsp.veocity 但是对freemarker和thymeleaf的支持 ...

  4. php theme_path,PHP_Yii2主题(Theme)用法详解,本文实例讲述了Yii2主题(Theme) - phpStudy

    Yii2主题(Theme)用法详解 本文实例讲述了Yii2主题(Theme)用法.分享给大家供大家参考,具体如下: 首先看看主要的配置方式: 'components' => [ 'view' = ...

  5. python中tile的用法_python3中numpy函数tile的用法详解

    tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复某个数组.比如tile(A,n),功能是将数组A重复n次,构成一个新的数组,我们还是使用具体的例子来说明问题 ...

  6. python定义类object_Python之ClassObject用法详解

    类和对象的概念很难去用简明的文字描述清楚.从知乎上面的一个回答中可以尝试去理解: 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行 ...

  7. fileinput 时间_JavaScript_Bootstrap Fileinput文件上传组件用法详解,最近时间空余,总结了一些关...

    最近时间空余,总结了一些关于bootstrap fileinput组件的一些常见用法,特此分享到phpstudy平台,供大家参考,同时也方便以后的查找.本文写的不好还请见谅. 一.效果展示 1.原始的 ...

  8. STL中map和string, vector 用法详解

    1. map 用法详解 std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成 ...

  9. C++/C--unordered_map常见用法详解

    文章目录 1. std::unordered_map 的定义与特性 2. 构造 std::unordered_map 3. 赋值操作 4. 迭代器操作 4.1 指向整个容器中的元素 4.2 指向某个桶 ...

最新文章

  1. 会开了一天,赛题有结果了吗?
  2. linux下防DDOS***软件及使用方法详解
  3. 【图论】Tree之最小方差树(bzoj 3754)
  4. b站在线解析_这款游戏被全B站所唾弃,每个月却依然有5000万玩家坚持在线?!...
  5. dbms数据库管理系统_数据库管理系统(DBMS)中的视图
  6. python 描述符参考文档_python 描述符详解
  7. 3种方法快速制作tpk文件
  8. centos7修改网卡名称为eth0
  9. 【图神经网络】 漫谈图神经网络 (一)
  10. Java之美[从蛮荒到撬动地球]之设计模式二
  11. 如何制作WindowsPE启动盘(极简)
  12. spring cloud 实现服务不间断
  13. iOS比较常用的第三方及实例(不断更新中)
  14. 基尔霍夫定律的验证与multisim仿真(附工程文件)
  15. 超值得入手的无线蓝牙耳机,四款性价比最高的蓝牙耳机品牌推荐
  16. wallpaper动态壁纸软件
  17. mysql 配置环境变量的方法及作用
  18. 什么是体系认证,企业进行认证有何意义?
  19. ps写php,ps毛笔字体怎么做
  20. 关于IDFA、CAID和「5. 1.2 - Data use sharing」

热门文章

  1. mongodb副本集搭建
  2. react-native 路由 react-native-router-flux
  3. pandas计算时间的间隔天数
  4. 区块链100讲:不做码农做矿工,该怎么和爹妈解释
  5. 利用iTextSharp填写中文(中日韩)PDF表单(完整解决方案)
  6. day10-协程遇到IO操作自动切换
  7. 【转】JVM 架构解读
  8. 关于使用public class 和 class声明类的区别
  9. 【转】Word 2010 取消拼写/语法检查,隐藏红线/绿线
  10. CharacterEncodingFilter作用