龙空技术网

flask实际操刀之jinja2模板渲染

熬心悟道 226

前言:

如今你们对“django模板引擎与jinja2模板引擎的区别”都比较关怀,兄弟们都需要剖析一些“django模板引擎与jinja2模板引擎的区别”的相关资讯。那么小编也在网络上搜集了一些关于“django模板引擎与jinja2模板引擎的区别””的相关知识,希望朋友们能喜欢,朋友们快快来学习一下吧!

前几节,我们简要的讨论了一下在flask开发中的环境搭建、模块分离等具体的开发技术,今天我们来看看flask架构中所使用的默认模板引擎jinja2。

jinja2简介

Jinja2是Python下一个被广泛应用的模版引擎,他的设计思想来源于Django的模板引擎,并扩展了其语法和一系列强大的功能。其中最显著的一个是增加了沙箱执行功能和可选的自动转义功能,这对大多应用的安全性来说是非常重要的。

jinja2的基本用法

基本语法

jiaja2中的基本语法有三种:第一种,用于变量取值使用“{{ }}”。第二种,用于进行控制使用的是“{% %}”。第三种就是注释“{# #}”

过滤器

变量可以通过“过滤器”进行修改,过滤器可以理解为是jinja2里面的内置函数和字符串处理函数。常用的过滤器有:

safe: 渲染时值不转义capitialize: 把值的首字母转换成大写,其他子母转换为小写lower: 把值转换成小写形式upper: 把值转换成大写形式title: 把值中每个单词的首字母都转换成大写trim: 把值的首尾空格去掉striptags: 渲染之前把值中所有的HTML标签都删掉join: 拼接多个值为字符串replace: 替换字符串的值round: 默认对数字进行四舍五入,也可以用参数进行控制int: 把值转换成整型

那么如何使用这些过滤器呢? 只需要在变量后面使用管道(|)分割,多个过滤器可以链式调用,前一个过滤器的输出会作为后一个过滤器的输入。

for循环

jinja2中的for循环用于迭代Python的数据类型,包括列表,元组和字典。在jinja2中不存在while循环。

迭代列表迭代字典

宏类似于Python中的函数,我们可以通过宏来定义自己的功能,还可以进行参数传递,就像Python中的函数一样。在宏中定义一个宏的关键字是macro,后面跟其 宏的名称和参数等:

标签: #django模板引擎与jinja2模板引擎的区别