Flask 框架——模板

本文详细介绍了 Flask 框架中使用的 Jinja2 模板,包括模板渲染、过滤器、控制语句、宏和 import 语句、include 和 set 语句以及模板继承。讲解了如何使用 render_template 渲染模板,Jinja2 的过滤器如 length、default、join 等,以及 if/for 语句。还探讨了宏的创建和导入,以及模板继承的概念,强调了静态文件的配置和 url_for 的使用。
摘要由CSDN通过智能技术生成

模板

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,则可以传递
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值