[PYTHON] Konfigurieren Sie ein Modul mit mehreren Dateien in Django

Ich bezweifle, dass die Titelbegriffe korrekt sind. .. .. .. .. ..

Memorandum für mich

Zweck

Beim Erstellen eines Programms mit Django Bequem sein, wenn der Umfang der Anwendung wächst Organisieren Sie das Verfahren zum Aufteilen von Modulen wie Ansichten und Modellen in mehrere Dateien.

Annahme

Die Umgebung ist wie folgt

Ubuntu 16.04
python 3.5.2
django 1.10.5

Verfahren

Hier teilen wir models.py in mehrere Dateien.

Modell in mehrere Dateien aufteilen

Ausgangszustand


__init__.py
admin.py
apps.py
migrations
models.py
tests.py
views.py

Ändern Sie hier models.py so, dass 1 Datei = 1 Modellklasse ist.

Mit dem Modellverzeichnis__init__.Bereiten Sie die py-Datei vor


__init__.py
admin.py
apps.py
migrations
models
    __init__.py
    task.py
tests.py
views.py

Löschen Sie models.py und bereiten Sie das Modellverzeichnis wie im obigen Code gezeigt vor. Eine Datei, die die darin enthaltene Datei __init.py ____ und die Modellklasse beschreibt Erstellen (hier task.py).

task.py


from django.db import models


class Task(models.Model):
    """
    Task to do.
    """
    name = models.CharField(max_length=30)
    startTime = models.DateTimeField()
    endTime = models.DateTimeField()
    memo = models.CharField(max。_length=200)

__init__py Datei


from webui.models.task import Task #Importieren Sie die oben erstellte Klasse

Teilen Sie die Ansicht in mehrere Dateien auf

Die Methode zum Teilen der Datei ist dieselbe.

  1. Löschen Sie views.py
  2. Erstellen Sie ein Ansichtsverzeichnis
  3. Erstellen Sie eine entsprechende Datei im Verzeichnis views
  4. Erstellen Sie die Datei views / __init __.py.
  5. Importieren Sie die Klassen und Methoden in die in 3. erstellte Datei mit der Datei __init __.py

Datei splitten


__init__.py
admin.py
apps.py
migrations
models
    __init__.py
    task.py
tests.py
views
    __init__.py
    task_view.py

Beschreibung in urls.py

Das Ansichtsmodul muss in urls.py beschrieben werden

Wenn Sie eine Ansicht auf Methodenbasis definieren

Ansichten in mehrere Dateien aufteilen Wenn du magst

urls.py(Methodenbasiert)


urlpatterns = [
    ...,
    url(r'^Angemessener regulärer Ausdruck',Anwendungsname.views.Dateiname.Methodenname)
]

Die Methode zum Angeben von ... import befindet sich auch in dem am Anfang dieses Abschnitts genannten Link. Obwohl beschrieben, kann nicht derselbe Methodenname angegeben werden, daher das obige Codebeispiel Ich denke, es ist besser, ** vielleicht ** zu verwenden.

Wenn Sie Ansichten auf Klassenbasis definieren

Im Fall einer Klasseneinheit wie in [Django views.py zu einer Klasse machen] gezeigt (http://blog.naru.se/2012/12/django-viewspy.html?m=1) Es wird wie folgt.

urls.py(Klassenbasiert)


urlpatterns = [
    ...
    url(r'^/URL kanonischer Ausdruck/$',Anwendungsname.views.Klassenname anzeigen.as_view()),
    ...
]

Durch Deklarieren von ... importieren wie im Fall der Methodenbasis Sie sollten den Paketnamen nicht schreiben müssen.

Referenzmaterial

Machen Sie Django views.py zu einer Klasse Ansichten in mehrere Dateien aufteilen

Recommended Posts

Konfigurieren Sie ein Modul mit mehreren Dateien in Django
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Speichern Sie mehrere Modelle in einem Formular mit Django
Erstellen Sie mit Vagrant in 5 Minuten eine Django-Umgebung
So verweisen Sie auf statische Dateien in einem Django-Projekt
Erstellen Sie eine Homepage mit Django
Hochladen mehrerer Dateien mit Flask
Versuchen Sie, Python in der mit pipenv erstellten Django-Umgebung auszuführen
[Django] Verwalten Sie Einstellungen wie das Schreiben in settings.py mit einem Modell
Bis Django etwas mit einem Linienbot zurückgibt!
Laden Sie die Django-Shell mit ipython neu
Auflisten von Dateien mit bestimmten Erweiterungen
Behandeln Sie CSV-Dateien mit Django (Django-Import-Export)
Laden Sie mehrere JavaScript-Dateien mit PyWebView
Verwalten Sie Django-Konfigurationsdateien mit Python-Decouple
Stellen Sie die Django-Anwendung mit Docker bereit
Django-Tipps - Erstellen Sie eine Ranking-Site mit Django-
Erstellen Sie eine Webanwendung mit Django
Machen Sie einen Filter mit einer Django-Vorlage
GraphQL-API mit graphene_django in Django
Erstellen Sie mit Django einen Datei-Uploader
Erstellen Sie mit Django einen LINE-Bot
Ruft eine Liste der Dateien in einem Ordner mit Python ohne Pfad ab
Installieren Sie Django in einer virtuellen Pipenv-Umgebung
Generieren Sie alle Dateien mit einer bestimmten Erweiterung
Spiralbuch in Python! Python mit einem Spiralbuch! (Kapitel 14 ~)
Einfacher RSS-Reader mit Django
Arbeiten mit mehreren Django-Projekten unter Apache (WSGIDaemonProcess)
Zeichne mit PyCall ein Herz in Ruby
Hinweise zum Erstellen statischer Dateien mit Django
[Kann in 10 Minuten erledigt werden] Erstellen Sie schnell eine lokale Website mit Django
Erstellen eines Anmeldebildschirms in Django all auth
Geben Sie das ModelChoiceField-Abfrageset in Django dynamisch an
Verarbeiten Sie mehrere Listen mit for in Python
Hinweise zum Aktivieren von PostgreSQL mit Django
Erstellen Sie mit dem Python-Anforderungsmodul einen Datensatz mit Anhängen in KINTONE
Implementieren Sie ein benutzerdefiniertes Benutzermodell in Django
Ich habe eine WEB-Bewerbung bei Django gemacht
Ich wollte die Anzahl der Zeilen in mehreren Dateien wissen und versuchte, sie mit einem Befehl abzurufen
Senden Sie eine E-Mail mit einem anderen Benutzer als EMAIL_HOST_USER, der in den Einstellungen in Django geschrieben wurde
Ich möchte eine Liste der WebDAV-Dateien im Modul Anfragen anzeigen
Drehen Sie in Python mehrere Listen mit for-Anweisung gleichzeitig
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Fehler beim Installieren eines Moduls mit Python pip
Zeichnen Sie in Jupyter ein Diagramm mit japanischen Beschriftungen
Löschen Sie Daten in einem Muster mit Redis Cluster
So entwickeln Sie eine Cart-App mit Django
Erstellen Sie eine virtuelle Umgebung mit conda in Python
Aktivieren Sie Django https in nur wenigen Zeilen
Durchsuchen Sie rekursiv alle Dateien mit mehreren angegebenen Erweiterungen
Erstellen Sie mit Django ein Dashboard für Netzwerkgeräte!
Klonen Sie mit einem bestimmten Zweig / Tag in GitPython
Behandeln Sie Zip-Dateien mit japanischen Dateinamen in Python 3
Melden Sie sich einfach mit mehreren Konten bei AWS an
Eine Geschichte über die Implementierung eines Anmeldebildschirms mit Django
Zeichenkodierung beim Umgang mit Dateien in Python 3
Erstellen Sie mit der Doker Toolbox eine Django-Entwicklungsumgebung
So fügen Sie Python ein Modul hinzu, das Sie in Julialang eingefügt haben
Arbeiten Sie in einer virtuellen Umgebung mit Python virtualenv.