我在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>
对此更好的方法是什么?使用模板过滤器的代码要少得多,但是这会使速度变慢吗?
答案 0 :(得分:3)
模板方法更好。它不会慢。
如果以后需要修改显示格式,只需修改模板而不是代码即可。
更重要的是,您甚至不需要将order by
的值传递给模板,因为您可以在模板中调用now
:
the_date_today