使用JJIA2,如何格式化日期字段?我知道在Python中我可以简单地做到这一点:

print(car.date_of_manufacture.strftime('%Y-%m-%d'))

但是我该如何在Jinja2中设置日期格式呢?

推荐答案

有两种方法可以做到这一点.直接的方法是简单地调用(并打印)模板中的strftime()方法,例如

{{ car.date_of_manufacture.strftime('%Y-%m-%d') }}

另一个明显更好的方法是定义自己的过滤器,例如:

from flask import Flask
import babel

app = Flask(__name__)

@app.template_filter()
def format_datetime(value, format='medium'):
    if format == 'full':
        format="EEEE, d. MMMM y 'at' HH:mm"
    elif format == 'medium':
        format="EE dd.MM.y HH:mm"
    return babel.dates.format_datetime(value, format)
    

(由于i18n的原因,此过滤器基于巴贝尔,但您也可以使用strftime).过滤器的优点是,你可以写

{{ car.date_of_manufacture|format_datetime }}
{{ car.date_of_manufacture|format_datetime('full') }}

它看起来更好,更易于维护.另一个常见的过滤器也是"timedelta"过滤器,其计算结果类似于"8分钟前编写".您可以使用babel.dates.format_timedelta,并将其注册为过滤器,类似于此处给出的datetime示例.

Python相关问答推荐

运行回文查找器代码时发生错误:[类型错误:builtin_index_or_system对象不可订阅]

有没有一种方法可以从python的pussompy比较结果中提取文本?

DataFrames与NaN的条件乘法

在极性中创建条件累积和

连接一个rabrame和另一个1d rabrame不是问题,但当使用[...]'运算符会产生不同的结果

给定高度约束的旋转角解析求解

Python列表不会在条件while循环中正确随机化'

CommandeError:模块numba没有属性generated_jit''''

通过ManyToMany字段与Through在Django Admin中过滤

为什么\b在这个正则表达式中不解释为反斜杠

以逻辑方式获取自己的pyproject.toml依赖项

基于另一列的GROUP-BY聚合将列添加到Polars LazyFrame

BeautifulSoup:超过24个字符(从a到z)的迭代失败:降低了首次深入了解数据集的复杂性:

我对这个简单的异步者的例子有什么错误的理解吗?

如果有2个或3个,则从pandas列中删除空格

根据Pandas中带条件的两个列的值创建新列

提取最内层嵌套链接

如何在Python中创建仅包含完整天数的月份的列表

极点:在固定点扩展窗口

将数据从一个单元格保存到Jupyter笔记本中的下一个单元格