flask是一个轻量级,简便的过滤器,可以进行简便的自定义过滤器
自定义过滤器方法:
@app.template_filter()
def my_filter(value)
return ***
完整代码
from flask import Flask,render_template
import datetime
app = Flask(__name__)
@app.route('/')
def index():
context = {
'username': 'hello lcy',
'age':-18,
'home':'tj',
'es':"<script>alert('hello')</script>",
#'name':'lcy1992'
'book':['python','java','PHP','shell'],
'height':1.83,
'weight':200,
'address': '天津市 静海区 梁头镇 西柳木村',
'now_time':datetime.datetime(2020,10,16,1,0)
}
return render_template('index.html',**context)
#自定义过滤器
@app.template_filter('my_filter')
def my_filter(value):
return value.replace('hello','')
@app.template_filter('handler_time')
def handler_time(time):
now = datetime.datetime.now()
time_stamp = (now-time).total_seconds()
if isinstance(time,datetime.datetime):
# 判断time是不是datetime类型的
if time_stamp < 60:
return '刚刚'
elif 60 <= time_stamp <= 60*60:
return '%s分钟之前' % int(time_stamp/60)
elif 60*60 <= time_stamp <= 24*60*60:
return '%s小时之前' % int(time_stamp/(60*60))
if __name__ == '__main__':
app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--<p></p>-->
<h1>首页</h1>
<p>{{ username }}</p>
<h5>{{ age|abs }}</h5>
<p>{{ name|default('这个人很懒,什么都没留下')}}</p>
<p>{{ username|my_filter }}</p>
<p>博客发表时间{{ now_time|handler_time }}</p>
<!-- 取列表中字符串的首字母末字母没成功 -->
<!-- <p>{{ es }}</p>-->
</body>
</html>
运行结果: