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
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')),
]
admin
Django 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.
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.
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