Existe-t-il une convention de dénomination pour les applications Django


115

Existe-t-il une convention de dénomination préférée pour créer une application Django composée de plus d'un mot? Par exemple, laquelle des propositions suivantes est préférée?

  1. my_django_app
  2. my-django-app Mise à jour: non autorisée syntaxiquement
  3. mydjangoapp Solution recommandée

Bien que tous puissent être options 1 et 3 soient syntaxiquement autorisées, y a-t-il une préférence? En regardant la façon dont Django crée les noms de table en combinant le nom de l'application et le nom du modèle avec un trait de soulignement, je me penche sur l'option n ° 1.

Pensées?

Réponses:


108

Il doit s'agir de noms de package valides. Cela exclut 2 ("import my-django-app" serait une erreur de syntaxe). PEP 8 dit:

Les modules doivent avoir des noms courts, entièrement en minuscules. Des traits de soulignement peuvent être utilisés dans le nom du module si cela améliore la lisibilité. Les packages Python doivent également avoir des noms courts, entièrement en minuscules, bien que l'utilisation de traits de soulignement soit déconseillée.

Ainsi, 1 et 3 sont tous deux valides, mais 3 serait l'approche recommandée.


1
Un article de blog utile sur ce problème, juste pour développer: streamhacker.com/2011/01/03/django-application-conventions
Akhorus

7
Salut @ surfer190. Deux boules de Django contiennent une tonne de bonnes pratiques. Ils choisissent le singulier: blog. C'est le même choix lorsque vous créez un modèle: le blog est préféré aux blogs.
Wim Feijen

2
En général, je recommanderais d'utiliser des traits de soulignement, car ils améliorent la lisibilité et ils sont couramment utilisés, par exemple j'utilise beaucoup django_extensions et django_debug_toolbar.
Wim Feijen

14
@WimFeijen, il semble que Two scoops de Django, au moins ici , recommande d'utiliser la `` version plurielle du modèle principal de l'application '' pour les noms d'applications, avec des exceptions comme une application nommée blog, une `` bonne exception ''.
Caco

Je me suis trompé. Merci @Caco d'avoir examiné cela et de m'avoir éduqué.
Wim Feijen

11

quelques bons exemples

  • graphène_django
  • utilisateurs
  • ordres
  • oauth2_provider
  • rest_framework
  • les sondages

en termes simples, app_namedevrait avoir des noms courts, entièrement en minuscules. Des traits de soulignement peuvent être utilisés dans le nom du module si cela améliore la lisibilité. devrait également avoir un nom court et cela peut être un nom au pluriel et au singulier


7

Les noms de répertoire d'application doivent être un nom de package Python valide. Cela signifie que l'option 2 est complètement inadmissible en tant que nom de package, bien qu'elle puisse toujours être utilisée à d'autres fins, telles que la documentation. En fin de compte, il s'agit d'un style personnel. Si vous préférez l'option 3, utilisez-la.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.