Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (6) [Vervollständigung des MTV-Entwurfsmusters]

Zusammensetzung der Kommentarartikel

No. Titel
1 Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (1) [Umgebungskonstruktion]
2 Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (2) [Projekterstellung]
3 Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (3) [Anwendungserstellung / DB-Einstellung]
4 Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (4) [Einführung in Routing-Einstellungen und MTV-Entwurfsmuster]
5 Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (5) [Einführung in den DB-Betrieb mit Django-Shell]
6 Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (6) [Vervollständigung des MTV-Entwurfsmusters]

Entwicklungsumgebung

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

Zusammenarbeit zwischen Modell und Vorlage

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.

Ansicht bearbeiten

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.

Vorlage bearbeiten

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?

スクリーンショット 2016-11-11 15.13.17.png

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.

スクリーンショット 2016-11-11 15.15.51.png

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.

スクリーンショット 2016-11-11 15.28.07.png

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.

Erweiterte Version

Die weltweit am einfachsten zu verstehende Erklärung zur Erstellung eines LINE BOT (1) [Kontoerstellung]

Verweise

Bonus

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

Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (6) [Vervollständigung des MTV-Entwurfsmusters]
Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (4) [Einführung in Routing-Einstellungen und MTV-Entwurfsmuster]
Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (2) [Projekterstellung]
Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (1) [Umgebungskonstruktion]
Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (3) [Anwendungserstellung / DB-Einstellung]
Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (5) [Einführung in den DB-Betrieb mit Django-Shell]
[Python] Webanwendungsdesign für maschinelles Lernen
Web Scraping für Anfänger in Python (1)
Web Scraping für Anfänger in Python (4) -1
Erläuterung zum Erstellen einer Anwendung zum Anzeigen von Bildern und Zeichnen mit Python
[Python] Protokoll des Studientreffens für Anfänger (7/15)
[Für Anfänger] Versuchen Sie Web Scraping mit Python
Einfaches Verständnis von Python für & Arrays (für Super-Anfänger)
[Python] Fehlerbehebung für Anfänger beim Studium der Webanwendung von Django
Grundlegende Geschichte der Vererbung in Python (für Anfänger)
Web Scraping für Anfänger in Python (1) Verbesserte Version
(Python) Versuchen Sie, eine Webanwendung mit Django zu entwickeln
Zusammenfassung der Vorverarbeitungsmethoden für Python-Anfänger (Pandas-Datenrahmen)
Webanwendung erstellt mit Python3.4 + Django (Teil.1 Umgebungskonstruktion)
Erläuterung zum NoReverseMatch-Fehler in "Python Django Super Introduction"
Web-Scraping für Anfänger mit Python (4) --2 Scraping auf Cloud Shell