Flask HTML模板引擎详解

模板引擎说明:

模板文件就是按照一定的规则书写的展示效果的HTML文件模板引擎就是负责按照指定规则进行替换的工具模板引擎选择jinja2。

一、渲染模板的方法

1、将渲染的模板进行返回

1

render_template()

2、渲染字符串返回

1

render_templates_string()

实例

1

2

3

4

5

6

@app.route('/')

def index():

  #将模板内容响应给用户

  return render_template('index.html')

  #渲染一内容响应给用户

  return render_template_string('<h1 style="color:green;font-size:18px;">原谅色</h1>')

二、模板的语法

模板中只存在俩种语法

1、变量

{ { 参数 }}

1

2

3

#像模板文件中传参

return render_template('index.html',title='首恶')

{ { title }}

2、标签

{% 标签名 %}

注意:

在模板中使用字典中的键 需要像使用对象得方式来调用

{ {data.key}}

如果在模板中给定的变量不存在 则插入的是空字符串 不会报错

三、过滤器

常用的过滤函数

abs(value):返回一个数值的绝对值。示例:-1|abs
default(value,default_value,boolean=false):如果当前变量没有值,则会使用参数中的值来代替。示例:name|default(‘xiaotuo’)——如果name不存在,则会使用xiaotuo来替代。boolean=False默认是在只有这个变量为undefined的时候才会使用default中的值,如果想使用python的形式判断是否为false,则可以传递boolean=true。也可以使用or来替换。
escape(value)或e:转义字符,会将<、>等符号转义成HTML中的符号。显例:content|escape或content|e。
first(value):返回一个序列的第一个元素。示例:names|first
format(value,*arags,**kwargs):格式化字符串。比如:{
  { "%s" - "%s"|format('Hello?',"Foo!") }}将输出:Helloo? - Foo!
last(value):返回一个序列的最后一个元素。示例:names|last。
length(value):返回一个序列或者字典的长度。示例:names|length。
join(value,d=u”):将一个序列用d这个参数的值拼接成字符串。
safe(value):如果开启了全局转义,那么safe过滤器会将变量关掉转义。示例:content_html|safe。
int(value):将值转换为int类型。
float(value):将值转换为float类型。
lower(value):将字符串转换为小写。
upper(value):将字符串转换为小写。
replace(value,old,new): 替换将old替换为new的字符串。
truncate(value,length=255,killwords=False):截取length长度的字符串。
striptags(value):删除字符串中所有的HTML标签,如果出现多个空格,将替换成一个空格。
trim:截取字符串前面和后面的空白字符。
string(value):将变量转换成字符串。
wordcount(s):计算一个长字符串中单词的个数。

过滤器使用管道符 | 来使用的

1、{ { var|abs }} 返回一个数值的绝对值

2、default 设置默认值

只有当给定的变量不存在时 则执行默认值

当设置default的boolean的时候 会执行默认值

1

<li>{ { data.bool|default('我是默认值',boolean=True) }}</li>

3、first: 取出变量中的第一个字符

4、last: 取出变量中的最后一个字符

5、format: 字符的格式化

1

<li>{ { '我叫%s 我今年%d岁了 我的存款为 %.2f'|format('罗铁汉',38,23) }}</li>

6、length: 返回变量值的长度

7、join: 拼接成字符串

1

2

<li>{ { [1,2,3,4]|join('') }}</li>

<li>{ { [1,2,3,4]|join('x') }}</li>

8、safe: 不转义标签 原样显示

9、lower 转为小写

10、upper 转为大写

11、replace 替换

1

<li>{ { data.string|replace('a','x') }}</li>

12、striptages 去除HTML标签

{ { data.html|striptags }}

四、标签

语法格式 :{% 标签名 %}

(1) if

实例

1

2

3

4

5

6

7

{ % if data.bool %}

    <li>{ { data.bool }}值为真</li>

{ % elif True %}

    <li>{ { True }}职位真</li>

{ % else %}

    <li>{ { data.bool }}值为假</li>

{ % endif %}

(2) for 循环

实例

1

2

3

4

5

6

7

{ % for i in data.xxxx %}<

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值