Ich bezweifle, dass die Titelbegriffe korrekt sind. .. .. .. .. ..
Memorandum für mich
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.
Die Umgebung ist wie folgt
Ubuntu 16.04
python 3.5.2
django 1.10.5
Hier teilen wir models.py in mehrere Dateien.
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
Die Methode zum Teilen der Datei ist dieselbe.
Datei splitten
__init__.py
admin.py
apps.py
migrations
models
__init__.py
task.py
tests.py
views
__init__.py
task_view.py
Das Ansichtsmodul muss in urls.py beschrieben werden
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.
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.
Machen Sie Django views.py zu einer Klasse Ansichten in mehrere Dateien aufteilen
Recommended Posts