Schließlich werde ich eine Seite mit der Vorlage erstellen.
setting.py ######
TEMPLATE_DIRS = (
'path/to/your/templates' #Es sieht überall gut aus
)
Sobald Sie es eingerichtet haben, müssen Sie den Ort natürlich richtig vorbereiten.
Sobald das Vorlagenverzeichnis fertig ist, erstellen Sie weitere Unterverzeichnisse für jede App und erstellen Sie darin HTML-Vorlagen. Erstellen Sie dieses Mal index.html in "Umfragen".
index.html ######
{% if latest_poll_list %}
<ul>
{% for poll in latest_poll_list %}
<li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
HTML kommt zwischen Python-Programmen. Ist jeder Prozess von {% hoge…%} bis {% endhoge%}? Es gibt einen Teil, der von {{}} umgeben ist, aber dies kann in PHP so etwas wie Echo sein. Es scheint, dass der Wert so wie er ist an HTML zurückgegeben wird.
Wenn Sie eine Vorlage haben, legen Sie sie als Ansicht für diese Seite fest.
views.py ######
from django.template import Context, loader
from polls.models import Poll
from django.http import HttpResponse
def index(request):
latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]
temp = loader.get_template('polls/index.html')
contxt = Context({
'latest_poll_list': latest_poll_list, #Neueste anzeigen?
})
return HttpResponse(temp.render(contxt))
Wenn Sie das Verknüpfungsmodul verwenden, können Sie es auch wie folgt kurz schreiben.
from django.shortcuts import render_to_response
#Dadurch werden Vorlage und http unnötig
from polls.models import Poll
def index(request):
latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]
return render_to_response('polls/index.html',
{'latest_poll_list': latest_poll_list})
#Kehren Sie mit dem Gefühl zurück, dass Temp und Contxt des vorherigen Codes zusammengefügt werden?
Persönlich bevorzuge ich am längsten den vorherigen Schreibstil (weil er leicht zu verstehen ist). Ich möchte die Verknüpfung verwenden, nachdem ich mich daran gewöhnt habe.
*** Übrigens gab es zwei beunruhigende Punkte, deshalb möchte ich sie erwähnen ***
’-pub_date’: Was bedeutet der erste Bindestrich?
[: 5]: Ebenso ist der Dickdarm unklar.
Recommended Posts