gpt4 book ai didi

flask - 如何在 Flask 应用程序中使用 Jinja 过滤器?

转载 作者:行者123 更新时间:2023-12-03 15:49:41 25 4
gpt4 key购买 nike

我正在尝试关注 solution ,以便在模板中为我的日期值创建一个日期时间过滤器。使用 babel 的好处是 i18n。

我已将代码插入到我的应用程序包中名为 filter.py 的文件中:

from f11_app import app
import babel

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.format_datetime(value, format)

app.jinja_env.filters['datetime'] = format_datetime

现在我得到的错误是:
File "/home/kave/projects/F11/Engineering/f11_app/templates/show_records.html", line 19, in block "body"

<td>{{ record.record_date|datetime }}

File "/home/kave/projects/F11/Engineering/f11_app/filters.py", line 9, in format_datetime

AttributeError: 'module' object has no attribute 'format_datetime'

为了加载 filters.py,我的 f11_app 的最后一行的 __init__.py这是:
from f11_app import views, filters

请问我会错过什么?

最佳答案

这是因为 babel模块没有 format_datetime方法。您必须使用 babel.dates.format_datetimeflask.ext.babel.format_datetime .见:http://babel.edgewall.org/wiki/Documentation/0.9/dates.htmlhttp://pythonhosted.org/Flask-Babel/#formatting-dates .

您也可以添加过滤器with decorator :

@app.template_filter('datetime')
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.format_datetime(value, format)

关于flask - 如何在 Flask 应用程序中使用 Jinja 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17014863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com