随笔 - 13  文章 - 0 评论 - 0 阅读 - 211
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

复制代码
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>
filter.html
复制代码

 

posted on   子线  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示