Flask基础入门(二)-Jinja过滤器

通过模板创建视图:

Flask中的jinja内置的模板语言,可以自动的生成HTML,还可以对数据进行某些修改后再将其显示在页面上。

Jinja的语法

Jinja是用Python实现的模板语言。模板语言是一种被设计来自动生成文档的简单文本格式。在模板语言中,一般都会把一些变量传给模板,替换模板的特定位置上预先定义好的占位变量名。在jinja中,变量名是由{{ }}来表示的。这种{{ }}语法叫做变量代码块,还有{% %}定义的控制代码块。可以实现一些语言层次的功能,比如循环或者if语句。

Jinja模板中的变量代码块可以是任意Python类型或者对象,只要它能够被Python的str()方法转换成一个字符串就行。比如,可以通过下面的方式显示一个字典或者列表中的某个元素:

{{ your_dict[‘key’] }}

{{ your_list[0] }}

过滤器

在jinja中可以把变量传给一些内建的函数来进行某些修改,以满足显示的需要,这些函数叫做过滤器(filter),在变量代码块中使用管道操作符 | 可以调用它们:

{{ variable | filter_name(*args) }}

如果没有任何参数要传给过滤器,则可以把括号省略掉:

{{ variable | filter_name}}

过滤器也可以在控制代码块中调用,这样就可以对一整块文字应用这个过滤器:

{% filter filter_name%}

文字内容

{% endfilter %}

Default

如果传给它的值是None,则用一个默认值来替代显示。

{{ post.date | default(‘2019-10-10’) }}

如果你希望变量在为假值的时候被替换成默认值,则可以把传给default的第2个参数设为True:

{{ ‘’ | default(‘An empty string’,True) }}

Escape

如果传递的变量是HTML字符串,则其中的&、<、>、’和”将被作为HTML转义序列打印:

{{ “<h1>Title</h1>” | escape}}

<h1>Title</h1>

Float

可使用Python的float()方法将传入值转换为浮点数显示:

{{ 75 | float}}

75.0

Int

可使用Python的int()方法将传入的值转换为整数显示:

{{ 75.7 | int}}

75

Join

这个过滤器将列表拼成一个字符串,与list的同名方法的作用完全一样。

{{ [‘Python’,’pymysql’] | join(‘,’) }}

Python,pymysql

Safe

如果想直接把HTML作为变量插入页面,在想显示一篇博客文章的时候,jinja会自动尝试对输出进行HTML转义。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值