【发布时间】:2017-09-08 03:18:38
【问题描述】:
我在 Django 模板上显示日期,并且我有一个 python 函数可以为我格式化今天的日期并将其传递给我的模板。
# function [format example: Wednesday 01 February 10:00:00]
def today():
date_now = datetime.now()
day_number = date_now.strftime("%d")
month_name = date_now.strftime("%B")
day_name = date_now.strftime("%A")
time = date_now.strftime("%X")
date = "{} {} {} {}".format(day_name, day_number, month_name, time)
return date
# view
def myview(request):
the_date_today = today()
context = {
"the_date_today": the_date_today,
}
return render(request, "template.html", context)
# template
<h1>{{ the_date_today }}</h1>
我刚刚找到了一种仅使用 Django 模板标签的方法。
# view
def myview(request):
the_date_today = datetime.now()
context = {
"the_date_today": the_date_today,
}
return render(request, "template.html", context)
# template
<h1>{{ the_date_today|date:"l m F H:i" }}</h1>
对此有什么更好的方法?仅使用模板过滤器的代码要少得多,但这是否会使任何事情变慢?
【问题讨论】:
-
模板过滤器不会让你的应用变慢。无论如何,在幕后这些都是python函数。最好将演示文稿保留在模板中,因此我建议为此使用标准的 Django 模板过滤器。
标签: python django django-templates django-template-filters