web-dev-qa-db-fra.com

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

Existe-t-il une convention de dénomination privilégiée pour créer une application Django composée de plusieurs mots? Par exemple, lequel des choix suivants est préféré?

  1. my_Django_app
  2. my-Django-app Update: Non autorisé syntaxiquement
  3. mydjangoappSolution recommandée

Tandis que tous peuvent être les options 1 et 3 sont autorisées syntaxiquement, existe-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 m'appuie contre l'option 1.

Pensées?

90
Matthew Rankin

Ils doivent être des noms de package valides. Cela exclut 2 ("importer mon-Django-app" serait une erreur de syntaxe). PEP 8 dit:

Les modules doivent avoir des noms courts en minuscules. Les traits de soulignement peuvent être utilisés dans le nom du module si cela améliore la lisibilité. Les paquets Python devraient ont également des noms courts en minuscules, bien que l'utilisation des traits de soulignement soit découragé.

Donc, 1 et 3 sont tous les deux valables, mais 3 serait l'approche recommandée.

83
thraxil

Les noms de répertoires d'applications doivent correspondre à un nom de package Python valide. Cela signifie que l'option 2 est totalement 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, cela revient au style personnel. Si vous préférez l'option 3, utilisez-la.

5

quelques bons exemples

  • graphene_Django
  • utilisateurs
  • ordres
  • oauth2_provider
  • rest_framework
  • les sondages

en termes simples, app_name devrait avoir des noms courts en minuscules. Les 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 il peut être pluriel et singulier 

0
Jamil Noyda

Mes votes pour 1 et 3, mais vous pouvez consulter plusieurs applications populaires: http://www.Django-cms.org/http://geodjango.org/

0
Guard