from flask import Flask, render_template from datetime import datetime app = Flask(__name__) # 定义类用于参数传递 class User: """ 对于参数age是后续加上去的,因为前期已经对于类进行过实例化了,所以在增加参数时,最好给上一个默认值. 不然之前的写法都要重新修改. """ def __init__(self, name, e_mail, age=18): self.name = name self.e_mail = e_mail self.age = age # 定义过滤器函数(格式化时间) # 前面有尝试用format这个作为第二个参数,结果显示为内置(是提示,并不是报错). def datetime_format(value, for_mat="%Y年%m月%d日 %H:%M"): return value.strftime(for_mat) # dformat为在模板中使用的过滤器的名称.相当于Jinja2模板中自带的length app.add_template_filter(datetime_format, "dformat") @app.route("/") def hello_world(): """ # 关于模板中过滤器(|)的使用,过滤器有很多这里只举例(length)说明, 详见filter.html # 如果Jinja2模板自带的过滤器都不能满足你的要求,还可以自定义过滤器(自定义的函数:datetime_format) """ user = User(name="Tina", e_mail="[email protected]") my_time = datetime.now() return render_template("filter.html", user=user, my_time=my_time) if __name__ == "__main__": app.run(host="0.0.0.0", port=5001, debug=True)
效果:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>过滤器使用</title> </head> <body> <div>用户名: {{ user.name }}-名称长度: {{ user.name|length }}</div> <div>时间: {{ my_time }}</div> <div>自定义过滤器后的时间: {{ my_time|dformat }}</div> </body> </html>filter.html
标签:__,name,自定义,datetime,使用,过滤器,my From: https://www.cnblogs.com/pythonex/p/18087163