Ich zeige ein Datum auf einer Django-Vorlage an, und ich habe eine Python-Funktion, die das Datum heute für mich formatiert und an meine Vorlage weiterleitet.Ist es besser, Django Template-Tags zu verwenden oder Variablen aus Python zu übergeben?
# 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>
Ich habe gerade eine Möglichkeit, dies mit Tags Django-Vorlage nur zu tun.
# 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>
Was ist der bessere Ansatz dafür? Es ist viel weniger Code, nur Vorlagenfilter zu verwenden, aber macht dies alles langsamer?
Template Filter werden Ihre App jede langsamer. Hinter den Kulissen sind das sowieso Python-Funktionen. Am besten ist es, die Präsentation in den Templates zu halten. Daher würde ich empfehlen, dafür die Standard-Django-Template-Filter zu verwenden. – dentemm