Je doute que les termes du titre soient corrects. .. .. .. .. ..
Mémorandum pour moi
Lors de la création d'un programme à l'aide de Django Pour être pratique lorsque l'échelle de l'application augmente Organisez la procédure de division des modules tels que les vues et les modèles en plusieurs fichiers.
L'environnement est le suivant
Ubuntu 16.04
python 3.5.2
django 1.10.5
Ici, divisons models.py en plusieurs fichiers.
Etat initial
__init__.py
admin.py
apps.py
migrations
models.py
tests.py
views.py
Ici, modifiez models.py afin que 1 fichier = 1 classe de modèle.
Avec le répertoire des modèles__init__.Préparer le fichier py
__init__.py
admin.py
apps.py
migrations
models
__init__.py
task.py
tests.py
views.py
Supprimez models.py et préparez le répertoire models comme indiqué dans le code ci-dessus. Un fichier qui décrit le fichier __init.py ____ et la classe de modèle qu'il contient Créez (ici, 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__fichier py
from webui.models.task import Task #Importez la classe créée ci-dessus
La méthode de division du fichier est la même.
Division de fichier
__init__.py
admin.py
apps.py
migrations
models
__init__.py
task.py
tests.py
views
__init__.py
task_view.py
Le module de vue doit être décrit dans urls.py
Diviser les vues en plusieurs fichiers Si tu fais comme
urls.py(Basé sur la méthode)
urlpatterns = [
...,
url(r'^Expression régulière appropriée',Nom de l'application.views.nom de fichier.Nom de la méthode)
]
La méthode à spécifier depuis ... import est également dans le lien mentionné au début de cette section. Bien qu'il soit décrit, le même nom de méthode ne peut pas être spécifié, donc l'exemple de code ci-dessus Je pense qu'il vaut mieux utiliser ** peut-être **.
En cas d'unité de classe comme indiqué dans Faire de Django views.py une classe Cela devient comme suit.
urls.py(Basé sur la classe)
urlpatterns = [
...
url(r'^/Expression canonique d'URL/$',Nom de l'application.views.afficher le nom de la classe.as_view()),
...
]
En déclarant from ... import comme dans le cas de la méthode base Vous ne devriez pas avoir besoin d'écrire le nom du package.
Faire de Django views.py une classe Diviser les vues en plusieurs fichiers
Recommended Posts