Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (4) [Einführung in Routing-Einstellungen und MTV-Entwurfsmuster]

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

Erstellen einer Webseite

Routing-Einstellungen

mysite/urls.Verwaltungsbildschirm mit py(admin)Und legen Sie das Routing (URL) für das Blog fest.




#### **`mysite/urls.py`**
```py

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'', include('blog.urls')),
]

adminDjango admin legt es automatisch fest, aber da ich noch nichts über das Blog erstellt habe, werde ich es festlegen.

blog/urls.Erstellen Sie eine leere Datei mit dem Namen py und bearbeiten Sie sie wie folgt.




#### **`blog/urls.py`**
```py

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.post_list),
]

Für URL-Muster,[Django Girls Tutorial](https://djangogirlsjapan.gitbooks.io/workshop_tutorialjp/content/django_urls/)Weitere Auszüge.



 > Dies bedeutet, dass Sie einer Ansicht mit dem Namen post_list eine URL mit dem Muster ^ $ zugewiesen haben.
 Was bedeutet ^ $?
 Es ist die Magie der regulären Ausdrücke :) Lassen Sie es uns zusammenfassen:
>
 * Im regulären Ausdruck bedeutet ^ "Anfang der Zeichenfolge". Starten Sie hier den Pattern Matching.
 * $ Bedeutet "Ende der Zeichenfolge" und beendet die Musterübereinstimmung hier.
>
 Ja, eine leere Zeichenfolge entspricht dem Muster dieser beiden Symbole nebeneinander. Die Auflösung des URL-Namens von Django stimmt jedoch mit dem Muster überein, mit Ausnahme von "http: //127.0.0.1: 8000 /". Dieses Muster bedeutet also "http: //127.0.0.1: 8000 /". Ich werde. Mit anderen Worten, es gibt an, dass `views.post_list` an Benutzer zurückgegeben werden soll, die auf die URL'http: //127.0.0.1: 8000 / 'zugreifen.

 Kurz gesagt, es wird derzeit erklärt, dass `` `urlpattern``` einer leeren URL (Stammverzeichnis)` `` post_list``` zuweist.
```post_list```Ich habe die Ansicht noch nicht erstellt, daher kann ich natürlich nicht darauf zugreifen.

# Django Designmuster

 Anschließend erstellen wir einen Anzeigebildschirm, der der festgelegten URL entspricht. Zunächst müssen wir jedoch wissen, wie der in Django angezeigte Bildschirm und die Datenbank verwaltet werden.

 Bevor wir über Django sprechen, werfen wir einen Blick auf MVC, ein typisches Entwurfsmuster.
 Wenn Sie MVC verstehen, wird es in Zukunft vielseitiger sein, und Sie können das von Django übernommene MTV-Entwurfsmuster leicht verstehen.

## MVC-Entwurfsmuster, das in Ruby on Rails usw. verwendet wird.

 In Webanwendungen wird es häufig als MVC-Entwurfsmuster verwaltet.
 MVC ist eine Abkürzung für Model View Controller, und jede Rolle lautet wie folgt.
 Ist Ruby on Rails nicht ein klassisches Beispiel für dieses MVC-Designmuster?

 ![](https://blog.chattyhive.com/wp-content/uploads/2014/01/mvc_detailed-full.png)

 Das Bild zeigt, dass der Controller basierend auf den Informationen, auf die der Benutzer zugreift, als Vermittler fungiert, die erforderlichen Informationen aus dem Modell und der Ansicht extrahiert und sie gemeinsam an den Benutzer zurückgibt.
 Grob gesagt ist View HTML, Model DB und Controller der Administrator.
 Ein solches klassisches MVC-Entwurfsmuster ist sehr einfach zu verstehen und zu handhaben, sobald Sie sich daran gewöhnt haben.

## Django ist ein MTV-Designmuster

 Es scheint, dass Django mit einem Entwurfsmuster namens MTV-Entwurfsmuster anstelle von MVC auskommt.
 * Ist dieses Gebiet wie ein religiöser Konflikt?

 MTV ist eine Abkürzung für Model Template View.

 ![](http://blog.easylearning.guru/wordpress/wp-content/uploads/2015/08/MVC-Vs-MTV-300x178.png)

 Ich denke, es gibt verschiedene Gründe, aber ich persönlich denke, dass das MVC-Entwurfsmuster in Ordnung ist.
 Grundsätzlich scheint es eine Eins-zu-Eins-Korrespondenz zwischen MVC und MTV zu geben. Denken Sie also daran, von MVC zu MTV zu konvertieren.

## MTV Referenzartikel
 * [Ich habe Python + Django ausprobiert. Informationen zum MTV-Modell](http://mimumimu.net/blog/2011/11/21/python-django-%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F% E3% 80% 82-mtv-Modell-% E3% 81% AB% E3% 81% A4% E3% 81% 84% E3% 81% A6 /)
* [Implementing MTV model in Python Django](https://www.google.co.jp/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&ved=0ahUKEwiQ--nhgaDQAhVLfLwKHW23BWEQjhwIBQ&url=http%3A%2F%2Fblog.easylearning.guru%2Fimplementing-mtv-model-in-python-django%2F&psig=AFQjCNFX3N_Iwfe29CaOZ8djG0oa6V4_2A&ust=1478929512330040)


# Einstellungen anzeigen

 Ansicht steuert den Teil, z. B. welche Vorlage von der festgelegten URL gelesen wird und welche Art von Informationen an die Vorlage übergeben werden.
 * In MVC-Entwurfsmustern wie Ruby on Rails ist dies der Teil, der als Controller bezeichnet wird.


#### **`blog/views.Ich werde py machen.`**
```Ich werde py machen.



#### **`blog/views.py`**
```py

from django.shortcuts import render

# Create your views here.
def post_list(request):
    return render(request, 'blog/post_list.html', {})

Da die vorherige URL für den Zugriff auf die Methode `post_list``` festgelegt wurde, definieren Sie` `def def__``` und verwenden Sie` request``` als Argument. Ich bin.

In der Rendermethode Blog/post_list.Der Inhalt der als Argument empfangenen Anforderung wird mithilfe einer Vorlagendatei namens html ausgegeben.


 Es ist einfach zu verwalten, ob der Methodenname und der Name der Vorlagendatei übereinstimmen.
 * Ruby on Rails geht grundsätzlich davon aus, dass der Methodenname und der Name der Vorlagendatei übereinstimmen, und macht sich nicht die Mühe, `` `render``` zu schreiben.

# Vorlage erstellen

 Jetzt erstellen wir eine Vorlagendatei.
 Erstellen Sie zunächst ein Verzeichnis für die Vorlage.

```bash
$ mkdir blog/templates
$ mkdir blog/templates/blog

Erstellen Sie in diesem Fall `` `post_list.html```.

blog/templates/blog/post_list.html


<html>
    <p>Hi there!</p>
    <p>It works!</p>
</html>

Wenn Sie nach dem Speichern auf http://127.0.0.1:8000/ zugreifen, wird die Vorlage geladen und funktioniert wie folgt.

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

Was das Schreiben von HTML betrifft, gibt es viele andere Referenzen, daher werde ich die Erklärung dort belassen.

Jetzt können Sie die Webseite für die Originalvorlage mit der URL anzeigen.

Nächster Kommentarartikel

Erklärung der Python-Webanwendung (Django) auf leicht verständliche Weise, auch für Anfänger (5) [Einführung in den DB-Betrieb mit Django-Shell]

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 (4) [Einführung in Routing-Einstellungen und MTV-Entwurfsmuster]
Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (5) [Einführung in den DB-Betrieb mit Django-Shell]
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]
[Python] Webanwendungsdesign für maschinelles Lernen
Aktualisiert "Einführung in Python Web Application Homebrew für Webingenieure im 3. Jahr, die langsam sind"
Aktualisiert "Einführung in Python Web Application Homebrew für Webingenieure im 3. Jahr, die langsam sind"
Aktualisiert "Einführung in Python Web Application Homebrew für Webingenieure im 3. Jahr, die langsam sind"
Aktualisiert "Einführung in Python Web Application Homebrew für Webingenieure im 3. Jahr, die langsam sind"
Aktualisiert "Einführung in Python Web Application Homebrew für Webingenieure im 3. Jahr, die langsam sind"
Aktualisiert "Einführung in Python Web Application Homebrew für Webingenieure im 3. Jahr, die langsam sind"
[Einführung in die Udemy Python3 + -Anwendung] 26. Kopie des Wörterbuchs
[Einführung in die Udemy Python3 + -Anwendung] 43. for else-Anweisung
(Python) Versuchen Sie, eine Webanwendung mit Django zu entwickeln
[Einführung in Udemy Python3 + Application] 53. Wörterbuch der Schlüsselwortargumente
[Einführung in Udemy Python3 + Application] 52. Tapple von Positionsargumenten
Erläuterung zum NoReverseMatch-Fehler in "Python Django Super Introduction"
[Einführung in die Udemy Python3 + -Anwendung] 42. für Anweisung, break-Anweisung und continue-Anweisung
■ Kaggle-Übung für Anfänger - Einführung von Python - von Google Colaboratory
[Erklärung für Anfänger] Einführung in die Faltverarbeitung (erklärt in TensorFlow)
[Python] Einführung in die Diagrammerstellung mit Corona-Virendaten [Für Anfänger]
Einführung in Python Django (2) Win
Entwurfsmuster in Python: Einführung
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
Einführung in Python For, While
Zusammenfassung von Kapitel 2 der Einführung in Entwurfsmuster, die in Java gelernt wurden
Kapitel 4 Zusammenfassung der Einführung in Entwurfsmuster, die in Java gelernt wurden
Zusammenfassung von Kapitel 3 der Einführung in Entwurfsmuster, die in Java gelernt wurden
[Einführung in die Udemy Python3 + -Anwendung] 69. Import des absoluten Pfads und des relativen Pfads
[Einführung in die Udemy Python3 + -Anwendung] 12. Indizieren und Schneiden von Zeichenketten
Python-Technik für diejenigen, die Anfänger loswerden wollen
Django super Einführung von Python-Anfängern! Teil 2 Ich habe versucht, die praktischen Funktionen der Vorlage zu nutzen
[Einführung in die Udemy Python3 + -Anwendung] 58. Lambda
[Einführung in die Udemy Python3 + -Anwendung] 31. Kommentar
[Einführung in die Udemy Python3 + -Anwendung] 57. Decorator
[Einführung in die Udemy Python3 + -Anwendung] 59. Generator
Web Scraping für Anfänger in Python (1)
[Einführung in die Udemy Python3 + -Anwendung] Zusammenfassung
Web Scraping für Anfänger in Python (4) -1
Erste Schritte mit Python für Nicht-Ingenieure
Einführung in Python Django (2) Mac Edition
[Einführung in die Udemy Python3 + -Anwendung] 47. Verarbeiten Sie das Wörterbuch mit einer for-Anweisung
[Für Anfänger] Super Einführung in neuronale Netze, die selbst Katzen verstehen können
Lassen Sie uns die kostenlose "Einführung in Python für maschinelles Lernen" bis zum 27. April online stellen
Python-Anfänger veröffentlichen Web-Apps mit maschinellem Lernen [Teil 2] Einführung in explosives Python !!
[Einführung in Python] Eine ausführliche Erklärung der in Python verwendeten Zeichenkettentypen!
Eine Einführung in selbst erstellte Python-Webanwendungen für einen trägen Webingenieur im dritten Jahr
Erläuterung zum Erstellen einer Anwendung zum Anzeigen von Bildern und Zeichnen mit Python
Einführung in die Graph Database Neo4j in Python für Anfänger (für Mac OS X)
Django super Einführung von Python-Anfängern! Teil 5 Ich habe eine supereinfache Tagebuchanwendung mit einer klassenbasierten Allzweckansicht erstellt