Wir werden mit der Diskussion unter der Annahme einer Mac-Umgebung fortfahren.
Überprüfen Sie die Python-Version wie folgt.
$ python3 --version
Python 3.5.2
Ich werde über die Zusammenarbeit schreiben, z. B. das Reflektieren der erstellten Modellinformationen auf der Vorlagenseite und das Bedienen des Modells auf der Tamplate-Seite. Nach Abschluss dieses Kapitels sollten Sie eine ungefähre Vorstellung von den für eine Webanwendung erforderlichen Fähigkeiten haben. Als nächsten Schritt können wir den eigentlichen Service freigeben, sobald wir ihn entwerfen und in der Produktionsumgebung bereitstellen können.
Bearbeiten Sie die Ansicht, die das Modell und die Vorlage verknüpft.
blog/views.py
from django.shortcuts import render
from django.utils import timezone
from .models import Post
# Create your views here.
def post_list(request):
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'blog/post_list.html', {'posts': posts})
Der erste Import wurde für die Django-Shell eingeführt, also ist es okay.
Übrigens steht `.``` in`
.models``` für aktuelles Verzeichnis
oder
aktuelle Anwendung`` `.
.Modelle ist Blog.Gleich wie Modelle.
Der wichtige Punkt ist hier
```py
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'blog/post_list.html', {'posts': posts})
Wir übergeben die Variable `` `posts```, die das Abfrageset per Render auf Template verweist. Auf diese Weise können die in View deklarierten Variablen in Template referenziert werden. Dies ist der Schlüssel zur Integration von Modell und Vorlage.
Es ist sehr einfach, aber nehmen wir die an die Vorlage übergebenen `` `Beiträge``` auf der Ansichtsseite und zeigen sie auf der Vorlagenseite an.
blog/templates/blog/post_list.html
<html>
<p>Hi there!</p>
<p>It works!</p>
{{ posts }}
</html>
Auf diese Weise sollte der in Python geschriebene Teil in doppelte Klammern von `{{}}`
gesetzt werden.
Übrigens müssen Sie natürlich den Server starten und den Befehl zum Starten des Servers nicht vergessen?
Starten Sie den Server
$ python3 manage.py runserver
Es ist in Ordnung, unter http://127.0.0.1:8000/ auf den lokalen Server zuzugreifen, oder?
Haben Sie eine vertraute Abfrage mit der Django-Shell wie dieser erhalten?
Lassen Sie uns dies als Liste anzeigen.
blog/templates/blog/post_list.html
<html>
<p>Hi there!</p>
<p>It works!</p>
<ul>
{% for post in posts %}
<li>{{post}}</li>
{% endfor %}
</ul>
</html>
Es scheint, dass die Steuerungssyntax von "for" und "if" in "{%%}" eingeschlossen sein sollte. Wenn Folgendes angezeigt wird, ist dies erfolgreich.
Der Titel des Artikels wird angezeigt. Da dies eine große Sache ist, bearbeiten wir die Vorlagenseite so, dass nicht nur der Titel, sondern auch der Inhalt des Artikels angezeigt werden kann.
blog/templates/blog/post_list.html
<html>
<!-- title -->
<div>
<h1>
<a href="/">
Qiita:Django Probe
</a>
</h1>
</div>
<!--Inhalt der Post-->
{% for post in posts %}
<div style="margin-top:50px;">
<h2>title:<a href="">{{ post.title }}</a></h2>
<p>published: {{ post.published_date}}</p>
<p>{{ post.text | linebreaks }}</p>
</div>
{% endfor %}
</html>
"| Zeilenumbrüche" bedeutet, einen Filter zu übergeben, der Textumbrüche in Absätze konvertiert. Es ist bequem.
Damit ist die Verknüpfung von Modell und Vorlage über die Ansicht abgeschlossen.
Wie sollte es bisher enden? Möglicherweise können Sie die Teile sehen, aus denen die Website besteht. Vielleicht kannst du so viel und nur so viel lernen? Ich denke, einige von Ihnen haben das vielleicht gedacht. Wenn Sie eine solche Person sind, machen Sie sich keine Sorgen. Wenn Sie das Entwerfen mit HTML und CSS studieren, können Sie diese Webseite sofort wunderschön fertigstellen.
Es sieht nicht besonders gut aus, aber es ist eine schwierige und notwendige Aufgabe, eine Position zu schaffen, die als serverseitiger Ingenieur bezeichnet wird, indem nur diese MVT verknüpft wird.
Wir hoffen, dass dieser Artikel ein Anfang für die Erstellung von Webanwendungen mit Django ist.
Wir warten darauf, dass Sie uns folgen!
Serviceeinführung Bitte kontaktieren Sie uns, wenn Sie an "Kikagaku" interessiert sind, einem Einzelunterrichtsdienst für maschinelles Lernen, mit dem Sie "Mathematik → Programmieren → Webanwendungen" gleichzeitig lernen können.
Recommended Posts