Si le fichier app/views.py devient très volumineux, devrais-je le séparer? Si oui, quelle est la meilleure façon de le faire?Séparer les vues de l'application Django
Répondre
Il n'y a pas générique meilleure façon. Mais il y a une bonne façon pour votre situation.
- mettre les vues dans leurs propres fichiers et les importer dans votre vue. Ce qui est bon juste pour voir comment cela fonctionne
- faire une application séparée à l'intérieur du projet pour maintenir un ensemble de vues
- créer votre propre generic views qui partagent les vues communes à la plupart de vos applications
Tout comme un exemple de départ: je vous recommande de commencer par le modèle et vous-même travailler jusqu'à:
- comment beaucoup de modèles avez-vous?
- Sont-ils tous ou peuvent-ils être groupés?
- si l'on peut groupés diviser les app en deux applications
- de sorte que vous aurez également diviser les vues
- déterminent quelles fonctions sont similaires voir et de les rendre générique.
Je diviser les vues ayant un objectif ou une fonctionnalité similaire en un seul fichier et les inclure dans views.py. Je ne fais cela que pour la lisibilité et la maintenance. Par exemple, des vues CRUD pour un objet particulier ou un groupe d'objets. En important ces vues directement dans le fichier views.py principal, cela permet à des personnes qui ne sont pas familières avec votre convention de trouver où se trouve le fichier.
views/object_view.py
Certains développeurs font leurs vues un python package au lieu d'un module. Cela signifie simplement créer un répertoire appelé views
dans votre application puis placer chaque vue dans son propre module (fichier) dans ce paquet.
Ensuite, vous créez un fichier __init__.py
(ce qui en fait un package). Ce fichier peut être vide ou il peut être importé tous les modules de vue dans son propre espace de noms.
S'il est vide, vous devrez importer directement chaque vue dont vous avez besoin, sinon vous pouvez l'importer comme s'il s'agissait d'un module views.py.
Dans un monde idéal, vous ne devriez pas avoir à faire cela. Au lieu de cela, essayez de refactoriser votre code dans différentes applications django pour chaque sous-objet dont votre projet a besoin. De cette façon, vous pouvez partitionner votre projet encore mieux que vous ne le pourriez si vous ne divisiez que le fichier views.py.
Pour obtenir des conseils sur la façon de diviser votre projet en différentes applications, je recommande la lecture pratique de James Bennett Django Projets, ce qui est ce que je relis en ce moment :)
- 1. Conventions de dénomination pour les vues Django?
- 2. Django nommé urls, vues génériques?
- 3. Séparer les chaînes CSV
- 4. (re) Utilisation des dictionnaires dans les vues django
- 5. Puis-je utiliser les vues génériques de Django avec google-app-engine-django?
- 6. Séparer les fichiers dans Git
- 7. Vues basées sur le rôle Django?
- 8. Passer des variables à Django Commenter Vues
- 9. Comment séparer les méthodes de test unitaires?
- 10. Comment suivre l'importation des vues dans Django
- 11. Séparer les méthodes objet des données objet
- 12. Séparer les règles métier des processus métier
- 13. Spécification de différents noms de modèles dans les vues génériques Django
- 14. Comment puis-je transmettre une variable statique standard à toutes les vues de Django?
- 15. Pagination des vues génériques basées sur la date dans Django
- 16. Conditions dans les vues
- 17. sockets de streaming C#, comment séparer les messages?
- 18. Séparer les journaux INFO et ERROR de java.util.logging
- 19. Impossible de séparer les cellules correctement avec simplehtmldom
- 20. MVVM WPF Diviser les vues en vues plus petites
- 21. MVC - Conditions dans les vues
- 22. NSNotification entre les vues de frère
- 23. Meilleure façon de suivre les pages vues
- 24. Utilisation de MVT Html.RadioButton dans les vues
- 25. Schéma XML pour séparer les 'données' des 'préférences'
- 26. Les vues se chargent lentement lors de la commutation entre les vues sur les iPhones 3G - comment changer de style?
- 27. clés Récupération de nouvel objet créé à partir create_object utilisant des vues génériques de Django
- 28. Sous-dossiers dans les contrôleurs et les vues
- 29. Admin, deux liens vers des vues différentes?
- 30. Django - comptage des vues d'instance de modèle (pour une application "top entries")
C'est ce que je fais pour mes objets de modèle parce que je travaille avec un grand domaine hérité. – ThatAintWorking