Fassen wir die MVT-Muster bei Verwendung von Django und die jedem Muster entsprechenden Module zusammen. Ein Modul ist übrigens eine Quelldatei von "~ .py". Ein Paket ist ein Ordner zum Verwalten von Quelldateien. (OK, wenn Sie es als Python-Dialekt betrachten)
Ich höre oft MVT-Muster und sehe oft Artikel über das Django-Framework. Ich dachte jedoch, es sei schwierig, sich die Entsprechung zwischen den beiden vorzustellen, deshalb werde ich sie als Memorandum zusammenfassen. Bitte kommentieren Sie, wenn Sie detaillierter schreiben möchten oder wenn etwas nicht stimmt.
Erläuterung | |
---|---|
Model | Datenmanagement |
View | Anrufsteuerung |
Template | Benutzeroberfläche |
Ist es so, wenn du es einfach schreibst? Darüber hinaus gibt es eine Funktion, die die Eingabedatensteuerungsklasse namens Django form verwenden kann. Wenn Sie eine umfangreiche Anwendung erstellen, können Sie etwas mehr über die Architektur nachdenken und die Serviceschicht und die Domänenschicht trennen Ich werde versuchen, es eines Tages in einer detaillierten Version zusammenzufassen.
Zum Beispiel werde ich die Grundkonfiguration einführen, wenn ein Projekt namens "sample_project" erstellt und eine Anwendung namens "sample_app" darin erstellt wird. (Fügen Sie für Ordner und Module, die beim Erstellen eines Django-Projekts nicht standardmäßig erstellt werden und selbst hinzugefügt werden müssen, einen Stern vor dem Namen hinzu.) (Fügen Sie für Pakete oder Ordner * nach dem Namen hinzu.)
sample_project*
| - sample_project*
| - settings.py
| - urls.py
| - wsgi.py
| - sample_app*
| - migrations*
| - ☆templates*
| - ☆static*
| - ☆sample_app*
| - models.py
| - views.py
| - ☆urls.py
| - manage.py
Da der Schwerpunkt dieses Artikels auf MVT liegt, werden nicht verwandte Pakete und Module weggelassen.
Wir werden tatsächlich die entsprechenden Module für jede Schicht vorstellen. Model Dies hängt mit dem Modell zusammen
sample_project*
| - sample_project*
| - settings.py ・ ・ ・ A.
| - sample_app*
| - migrations*・ ・ ・ B.
| - models.py ・ ・ ・ C.
** A. Projektweites Konfigurationsmodul ** Es ist kein Modul, das nur von Model verwendet wird, sondern es werden hier Informationen zu Datenbankeinstellungen usw. geschrieben.
** B.Migrationspaket **
Enthält die Quelldateien, die mit dem Befehl "make migrations" generiert wurden, wenn versucht wird, eine Datenbank in der Codebasis zu erstellen.
Der Befehl migrate
wendet den Inhalt hier auf die Datenbank an.
** C. Modul zum Definieren jeder Modellklasse ** Hier definieren Sie Ihre eigene Modellklasse. So erstellen Sie eine Modellklasse
View Dies hängt mit View zusammen Es ist wichtig zu beachten, dass View nicht nur die Definition der View-Funktion für die Steuerung nach dem Anruf erfordert, sondern auch die Einstellung des URL-Dispatchers, welche View-Funktion aufgerufen werden soll.
sample_project*
| - sample_project*
| - urls.py ・ ・ ・ A.
| - sample_app*
| - views.py ・ ・ ・ B.
| - ☆urls.py ・ ・ ・ C.
** A. urls.py ** im Projektpaket Beschreibt die Dispatcher-Informationen zum Aufrufen der View-Funktion basierend auf der URL. Dieses Modul beschreibt jedoch einen URL-Dispatcher, mit dem jede Anwendung im Django-Projekt aufgeteilt wird. In diesem Beispiel wie "http: // ~~~~~ / sample_project / sample_app /" Registrieren Sie den URL-Dispatcher bis zur Aufteilung der Anwendung nach dem Hostnamen.
** B. Modul zum Definieren jeder Ansichtsfunktion ** Definieren Sie hier Ihre eigene Ansichtsfunktion.
** C. urls.py ** im Anwendungspaket Beschreibt die einzelnen URL-Dispatcher-Informationen in der Anwendung. Sie müssen dieses Modul selbst hinzufügen. Sie registrieren einen URL-Dispatcher, der eine Fortsetzung der URL darstellt, die für jede Anwendung durch das oben genannte * A * geteilt wird. In diesem Beispiel "sample_app", damit Sie eine URL wie "http: // ~~~~~ / sample_project / sample_app / home" oder "http: // ~~~~~ / sample_project / sample_app / edit" angeben können Registrieren Sie das Teil nach / `.
Template Dies hängt mit der Vorlage zusammen
sample_project*
| - sample_app*
| - ☆templates*
| - ☆static*· · · EIN
| - ☆sample_app*・ ・ ・ B.
** A. Paket zum Speichern von Rendering-Dateien (CSS-Dateien und JS-Dateien) ** Neben HTML werden hier Dateien abgelegt, die für die Bildschirmkonfiguration erforderlich sind.
** B.Template-Dateispeicherpaket ** Platzieren Sie die HTML-Datei hier.
Wenn Sie ein Framework verwenden, ist es sehr wichtig zu organisieren, wo und was geschrieben werden soll! Dieses Mal konzentrierte ich mich auf die Ordner und Dateien, die ich hier für jede MVT mit einer einfachen Struktur vorerst betrachten musste.
Recommended Posts