模板
1. 模板简介
模板
模板是一个 web 开发必备的模块。因为我们在渲染一个网页的时候,并不是只渲染一个纯文本字符串,而是需要使用模板了。在 Flask 中,配套的模板是 Jinja2, Jinja2 的作者也是 Flask 的作者。这个模板非常的强大,并且执行效率高。以下对 Jingja2 做一个简单介绍!
Flask 渲染 Jinja 模板
要渲染一个模板,通过 render_template 方法即可。
from flask import Flask,reder_template
app=Flask(__name__)
@app.route('/about/')
def about():
return render_template('about.html')
当访问/about/ 的时候,about() 函数会在当前目录下的 templates 文件夹下寻找 about.html 模块文件。如果想更改模板文件地址,应该在创建 app 的时候,给 Flask 传递一个关键字参数 template_folder,指定具体的路径。
from flask import Flask,render_template
app=Flask(__name__,template_folder=r'路径')
@app.route('/about/')
def about():
return render_template('about.html')
以上例子将会在 C盘的 templates 文件夹中寻找模板文件。还有最后一点是,如果模板文件中有参数需要传递,应该怎么传呢
from flask import Flask,render_template
app=Flask(__name__)
@app.route('/about/')
def about():
# return reder_template('about.html',user='luoji')
return render_template('about.html',**{'user':'zhiliao'})
以上例子介绍了两种传递参数的方式,因为 render_template 需要传递的是一个关键字参数,所以第一种是顺其自然的。但是当你的模板中要传递的参数过多的时候,把所有参数放在一个函数中显然不是一个好的选择,因此我们使用字典进行包装,并且加两个 * 号,来转换成关键字参数。
2-Jinja2 模板过滤器
Jinja2 模板过滤器
过滤器是通过管道符号(|)进行使用,例如:{ {name|length}},将返回name 的长度。过滤器相当于是一个函数,把当前的变量传入到过滤器中,然后过滤器根据自己的功能,在返回相应的值,之后在将结果渲染到页面中。Jinja2 中内置了许多过滤器,在这里可以所有的过滤器。
- abs(value):返回一个数值的绝对值。
<p>{
{name|abs}}</p>
- default(value,default_value,boolean=false):如果当前变量没有值,则会使用参数中的值来代替。name|default(‘yuan’)——如果 name 不存在,则会使用 yuan 来代替。boolean=Flase 默认是在只有这个变量为 undefined 的时候才会使用 defaault 中的值,如果想使用 python 的形式判断是否为 false,则可以传递