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="714514386@qq.com") 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>
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术