Comments on: Organisation d’une application Django http://sametmax.com/organisation-dune-application-django/ Du code, du cul Sat, 07 Nov 2015 11:08:18 +0000 hourly 1 http://wordpress.org/?v=4.1 By: Napoleon http://sametmax.com/organisation-dune-application-django/#comment-164082 Wed, 26 Aug 2015 17:33:33 +0000 http://sametmax.com/?p=7011#comment-164082 Très bien, j’essaierai de suivre ces sages conseils a l’avenir.

Merci !

]]>
By: Sam http://sametmax.com/organisation-dune-application-django/#comment-164081 Wed, 26 Aug 2015 17:15:08 +0000 http://sametmax.com/?p=7011#comment-164081 Cela dépend du contenu de la vue :

  • si c’est de la manipulation de données, tu peux mettre ça dans les models.py
  • si c’est de la validation de données, tu peux mettre ça dans forms.py.
  • si c’est du formatage pre template, tu peux mettre ça dans un template tag.
  • pour le reste, tu mets ça dans un module nommé selon le but de la procedure dans ton app (ou une app spécifique pour ça si tu as beaucoup de code). Tu n’est pas limité aux modules existant dans une app, tu peux et doit créé tes propres modules.
]]>
By: Napoleon http://sametmax.com/organisation-dune-application-django/#comment-164080 Wed, 26 Aug 2015 17:05:28 +0000 http://sametmax.com/?p=7011#comment-164080 Hey ! Bonjour tout le monde !

J’ai commencé a me former a l’utilisation du Python et de Django tout récemment. Et parfois certaines questions ‘techniques’ ou d’organisations me désarçonnent complètement.

Heureusement d’ailleurs que des sites comme celui-ci (mais quand même en particulier celui-ci) me donnent un sacré coup de de main quand cela arrive.

Cependant ( et c’est peut etre bien de ma faute, je n’ai peut etre pas encore assez chercher), je n’ai pas trouvé réponse a la question que je me posais en arrivant sur cette page.

Le projet sur lequel je travaille est encore dans une phase “enfant” , malgré cela, je commence a avoir des fonctions dans mes views.py qui ressemble de plus en plus a de gros pavés en accumulant 50 ou 100 lignes de codes par fonction.

Alors, voila ma question: “D’après vous, quelle est la meilleure facon de remédier a ce problème ? Comment redécouper proprement une fonction contenue dans un views.py ?”

Bonne soirée a vous ;)

]]>
By: Gui. http://sametmax.com/organisation-dune-application-django/#comment-162162 Tue, 16 Jun 2015 09:48:10 +0000 http://sametmax.com/?p=7011#comment-162162 Merci beaucoup pour cet article !

Connaissant le dev web via des framework PHP (codeIgniter, CakePHP…), j’ai été un peu chamboulé au début avec Django. En tant que bon fainéant de dev, je prône la factorisation: je savais qu’il fallait que je m’organise bien mais j’étais perdu avec cette histoire d’app… Concrètement ton article m’a ouvert les yeux, un point reste néanmoins flou… Pour le moment j’ai une app qui gère les utilisateurs et les groupes (pas d’utilisation des groupes Django, nos specs partent sur un autre principe) et il va y avoir une app métier. Dans ma première app j’ai mis en place Bootstrap & JQuery (car Django pas content voulait pas mappé sur le dir static de la racine). Sera t il possible d’utilisé ces css et js depuis l’autre app ? Dans un premier temps les 2 apps seront très très liées mais bon…

]]>
By: Sam http://sametmax.com/organisation-dune-application-django/#comment-161984 Sat, 13 Jun 2015 05:13:57 +0000 http://sametmax.com/?p=7011#comment-161984 Ton arbo originale n’a pas d’importance. L’important est que tu prennes le temps de revenir dessus régulièrement pour la modifier et l’adapter au fur et à mesure que ton projet évolue.

Au début, il est naturel que tu ne saches pas exactement quelles sont les fonctionalités à isoler sous forme d’app, et donc tu fais des apps pour chaque partie de ton architecture. Plus tard, les groupes fonctionnels apparaitrons plus clairs, et tu voudras sans doute revoir ton organisation.

]]>
By: Arnaud Lamy http://sametmax.com/organisation-dune-application-django/#comment-161978 Fri, 12 Jun 2015 23:09:37 +0000 http://sametmax.com/?p=7011#comment-161978 Merci pour ce très bon article, l’organisation app / projet devient un peu plus clair. J’ai encore bcp de mal à bien voir l’utilité des apps par rapport à une arbo bien maîtrisé maison.

Débutant avec ce framewrok, je cherche à développer une application web et j’ai bien envie de faire deux apps, une pour le backend avec une api rest et une autre pour le front end. Je verrai bien si j’ai besoin d’exploser par la suite l’app backend. Comme je disais pour moi faire une apps à part, c’est pratique si je peux la réutiliser ailleurs, sinon autant continuer son arbo en évitant les dossiers ou classes trop lourdes.

Que pensez vous de cette découpe ?

]]>
By: matthieu http://sametmax.com/organisation-dune-application-django/#comment-147568 Wed, 29 Oct 2014 22:47:38 +0000 http://sametmax.com/?p=7011#comment-147568 (disclaimer : je ne suis pas du tout dév. web, j’ai juste besoin de faire quelques interfaces de temps en temps)

J’utilise globalement l’étape « maturité ». Par contre, c’est le déploiement qui est différent. Je package tout systématiquement (python setup.py sdist), et quand je veux installer, je fais mkvirtualenv monprojet && pip install monprojet .
Une mise à jour ? pip install monprojet –upgrade

Et les settings, dans tout ça ? Et bien j’utilise un fichier qui s’appelle… defaults.py.
Plus exactement, j’ai un fichier defaults.py avec des paramètres fonctionnels de base (je commence par LOCAL_PATH qui correspond au dossier du projet, et je définis dedans mon MEDIA_ROOT, ma base SQLite, mon STATIC_ROOT). Dans mon IDE (PyCharm), je dis que le fichier de settings est ce fichier defaults.py. Fantastique, mon IDE reconnaît correctement tous mes templates et gère bien les aspects Django.

Et j’ai un fichier settings.py, qui va chercher en parallèle defaults.py et customs=import_module(~/.virtualenvs/monprojet/etc/monprojet/settings.py) .
Ensuite, une petite boucle sur les variables définies dans defaults.py et je les injecte dans le globals() de settings.py, en les overridant par celles de customs quand elles sont définies (bon, c’est l’idée, en pratique c’est un peu plus subtil vu que je veux pouvoir faire des remplacements genre STATIC_ROOT = “%(LOCAL_PATH)s/static” ).

Et hop, je customize uniquement les paramètres spécifiques à l’installation dans ~/.virtualenvs/monprojet/etc/monprojet/settings.py (qui ne sera jamais touché quand je fais pip install ).

]]>
By: Said http://sametmax.com/organisation-dune-application-django/#comment-39315 Sat, 31 May 2014 10:36:13 +0000 http://sametmax.com/?p=7011#comment-39315 Effectivement je confirme, ça fonctionne mieux !

Merci :)

]]>
By: Sam http://sametmax.com/organisation-dune-application-django/#comment-39296 Sat, 31 May 2014 10:18:06 +0000 http://sametmax.com/?p=7011#comment-39296 En effet il y a une typo. Il faudrait plutot :

PROJECT_DIR = os.path.dirname(os.path.realpath(__file__))
ROOT_DIR = os.path.dirname(PROJECT_DIR)
APPS_DIR = os.path.realpath(os.path.join(ROOT_DIR, 'apps'))
sys.path.append(APPS_DIR)
]]>
By: Said http://sametmax.com/organisation-dune-application-django/#comment-39285 Sat, 31 May 2014 09:44:36 +0000 http://sametmax.com/?p=7011#comment-39285 Je confirme le commentaire de “Dr. Benton” par rapport au fichier de settings.py

En utilisant l’instruction du post, je me retrouvais avec une erreur : “no module named porno” ! Quelle version de django utilise-tu ?

]]>