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转义。

猜你喜欢

转载自blog.csdn.net/Jack_Chen3/article/details/87900002