flask学习-模板

模板简介

模板是web开发必备的模块,因为我们在渲染一个网页的时候,不一定都是纯文本,有时候是富文本,这时候我们就需要用到模板了,flask配置的模板是jinja2,这个模板很强大,执行效率高

flask渲染jinja2模板

Flask渲染jinja2只需要通过render_template()方法即可,但是我们必须要创建一个templates目录来放模板文件,当然可以修改模板文件的路径,通过Flask修改init参数, 指定模板文件查找路径 template_folder,但是不建议这种做法

模板文件内容
在这里插入图片描述

# render_template需要从flask中导入
from flask import Flask, render_template

# 指定模板文件查找路径 template_folder
app = Flask(__name__)


@app.route("/")
def index():
	return render_template("demo1.html")  # 模板文件名为demo1.html

if __name__ == '__main__':
    app.run(port=8000, debug=True)

只要我们访问http://127.0.0.1:8000/就会显示“这是模板文件”的字样

模板传参

直接传参

render_template("demo1.html", username="xx")添加username参数
模板文件怎么样接受呢?

demo1.html模板文件中需要{{username}}接收

直接传参缺点是:如果需要的参数很多,就会显得很多代码,冗余

字典传参

首先需要在视图函数中定义好字典,这里以content={"username":"xiaoxie"}

render_template("demo1.html", content=content)添加参数

demo1.html模板文件需要{{conten.username}}这样接收,这样的模板文件就会麻烦很多,所以就有了**content, 这个参数,会自动变字典为关键字传参的形式,模板文件直接使用{{username}}就可以渲染到页面中

如果字典里面还嵌套字典,就是{{dict.key}}
嵌套列表是: {{list.1}}根据索引取值,从0开始

模板过滤器(filter)

过滤器是通过管道符号(|)进行使用的,例如:{{name|length}},将返回name的长度。过滤器根据自己的功能,再返回相应的值,之后再将结果渲染到页面中。jinja2中内置了许多过滤器
flask内置过滤器
返回数值的绝对值

abs(value)

返回字符串长度,包括空格

length(value)

使用默认值

default(value)

返回单词的个数(以空格作为分割符)

wordcount(value)

返回数组的首元素

first(value)

返回数组的最后一个元素

last(value)

拼接字符串(每个字母都会拼接)

join(“需要添加的”)

全部变成大写

upper(value)

全部变成小写

lower(value)

设置为安全,当我们需要渲染一些script代码到页面中,如果不设置为安全,以为就是字符串,自动帮我们转义了

safe(vlaue)

关闭自动转义

{% autoescape off %}-->
	<p>{{es}}只有在这里面才会关闭转义</p>
{% endautoescape %}

字符串格式化

format(value)

变成浮点数

float(value)

转成整型

int(value)

去标签

striptags(value)

截取字符串

truncate(length=5)   # 最后面三个是省略号,长度不能低于3

替换字符串

replace(old, new)

代码:
视图函数
在这里插入图片描述
模板文件
在这里插入图片描述
页面显示
在这里插入图片描述

自定义过滤器

需要导入template_filter

@app.template_filter("过滤器名字")
def cut(value):
	return value.replace("nishi", "nihao")

这样就简单的定义了一个过滤器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值