[PYTHON] Django2 Konfigurationsmuster anzeigen

Annahme

Anfänger. Es ist eine Erklärung, dass ein solches Verständnis in der Praxis gut sein kann.

Umgebung

Überprüfen Sie zunächst die Erstkonfiguration von View

Erstellen Sie in Django zunächst eine Vorlage für Ihr Projekt und Ihre App mit dem folgenden Befehl:

python


> django-admin startproject some_project
> cd some_project
> python manage.py startapp some_app

Dann ist die Struktur des Ordners wie folgt.

python


> tree /f some_project
C:\***\SOME_PROJECT
│  manage.py
│
├─some_app
│  │  admin.py
│  │  apps.py
│  │  models.py
│  │  tests.py
│  │  views.py # <=Frühe Ansicht(Aussicht)Ist 1 Dateistruktur
│  │  __init__.py
│  │
│  └─migrations
│          __init__.py
│
└─some_project
    │  settings.py
    │  urls.py
    │  wsgi.py
    │  __init__.py
    │
    └─__pycache__
            settings.cpython-37.pyc
            __init__.cpython-37.pyc

Wie oben erwähnt, besteht die Ansicht beim Erstellen einer App aus einer Datei namens views.py.

Wenn Sie es einfach versuchen, ist es in Ordnung, wie es ist, Im eigentlichen Projekt, auch wenn der Start etwas dauert Es ist besser, der Wartungsfreundlichkeit Vorrang einzuräumen.

Konfigurationsmuster anzeigen

Die Struktur von View kann mithilfe des Python-Mechanismus geändert werden. Ich werde kurz erklären, aus welcher Perspektive Sie sich die Konfiguration vorstellen können, einschließlich Empfehlungen.

Funktionsbasiert / klassenbasiert

Klassenbasiert wird empfohlen, da Sie möglicherweise die Standardklasse in Ihrem Projekt verwenden möchten.

Als Datei / Paket

Es ist für mehrere Personen problematisch, eine Datei zu verarbeiten. Es wird daher empfohlen, sie zu verpacken.

Importieren / nicht importieren mit \ _ \ _ init \ _ \ _.py

Beim Verpacken wird empfohlen, mit \ _ \ _ init \ _ \ _ zu importieren. Py. Nur urls.py importiert also Ansichten Es ist kein Muss, aber aus Sicht des Anrufers

python


from some_app.views.category.sub_category. import SomeView

als

python


from some_app.views import SomeView

Ist sanfter, weil es Sie nicht auf die Zusammensetzung unter der Verpackung aufmerksam macht.

1 Datei 1 Klasse / mehrere Klassen

Ich denke nicht, dass einer besser ist, Ich finde es gut, die Regeln zu bestimmen.

Zum Beispiel

Die Funktion --CRUD wird in einer Klasse pro Datei definiert

Und so weiter. Bei der Festlegung der Regeln sollten die folgenden Punkte berücksichtigt werden.

-Ist es einfach, sich den zugehörigen Quellcode vorzustellen und zu durchsuchen, wenn Sie auf den Bildschirm schauen? -Ist es nicht störend, wenn Sie mit einem Editor bearbeiten?

Verwenden / verwenden Sie keine generische Ansicht

Es mag etwas extrem sein, aber wir empfehlen Folgendes:

** Listenbildschirm ** ListView (django.views.generic.ListView) ** Andere ** View (django.views.View)

ListView wird empfohlen, da es die Page Nation-Funktion verwenden kann. Wir empfehlen nicht, andere generische Ansichten zu verwenden.

Zunächst gibt es viele Dinge, aber der einfache Grund ist folgender. ・ Das Lesen des Quellcodes dauert einige Zeit => ・ Die Vorteile sind es nicht wert => Es wird kompliziert. ・ Das Debuggen wird schwierig

Außerdem hat Django Model (QuerySet) / Form. Es gibt einige nützliche Funktionen, die Lernkosten erfordern.

Anstatt die generische Sichtweise zu verstehen Es ist auf jeden Fall ratsam, Lernkosten dafür aufzuwenden.

Als Beispiel, CreateView (django.views.generic) hat die folgende Vererbungsbeziehung.

das ist alles.

Recommended Posts

Django2 Konfigurationsmuster anzeigen
Django funktionsbasierte Ansicht
Django klassenbasierte Ansicht
Django
Django Tutorial Zusammenfassung für Anfänger von Anfängern ③ (Anzeigen)
Ajax in Django (mit generischer Klassenansicht)