Esiste una convenzione di denominazione per le app Django


115

Esiste una convenzione di denominazione preferita per la creazione di un'app Django composta da più di una parola? Ad esempio, quale delle seguenti è preferita?

  1. my_django_app
  2. my-django-app Aggiornamento: non consentito sintatticamente
  3. mydjangoapp Soluzione consigliata

Sebbene tutte possano essere le opzioni 1 e 3 sintatticamente consentite, c'è una preferenza? Guardando il modo in cui Django crea i nomi delle tabelle combinando il nome dell'app e il nome del modello con un trattino basso, mi sto appoggiando all'opzione n. 1.

Pensieri?

Risposte:


108

Devono essere nomi di pacchetti validi. Ciò esclude 2 ("import my-django-app" sarebbe un errore di sintassi). PEP 8 dice:

I moduli dovrebbero avere nomi brevi, tutti minuscoli. È possibile utilizzare trattini di sottolineatura nel nome del modulo se migliora la leggibilità. I pacchetti Python dovrebbero anche avere nomi brevi, tutti minuscoli, sebbene sia sconsigliato l'uso di trattini bassi.

Quindi, 1 e 3 sono entrambi validi, ma 3 sarebbe l'approccio consigliato.


1
Un utile post sul blog su questo problema, solo per espandere: streamhacker.com/2011/01/03/django-application-conventions
Akhorus

7
Ciao @ surfer190. Due misurini di Django contengono un sacco di buone pratiche. Scelgono il singolare: blog. È la stessa scelta quando crei un modello: il blog è preferito rispetto ai blog.
Wim Feijen

2
In generale, consiglierei di utilizzare i trattini bassi, perché migliorano la leggibilità e sono comunemente usati, ad esempio uso molto django_extensions e django_debug_toolbar.
Wim Feijen

14
@WimFeijen, sembra che due misurini di Django, almeno qui , consigliano di utilizzare la "versione plurale del modello principale dell'app" per i nomi delle app, con eccezioni come un'app chiamata blog, una "buona eccezione".
Caco

Mi correggo. Grazie @Caco per aver esaminato questo aspetto e avermi istruito.
Wim Feijen

11

alcuni buoni esempi

  • graphene_django
  • utenti
  • ordini
  • oauth2_provider
  • rest_framework
  • sondaggi

in termini semplici, app_namedovrebbe avere nomi brevi, tutti minuscoli. È possibile utilizzare trattini di sottolineatura nel nome del modulo se migliora la leggibilità. inoltre dovrebbe avere un nome breve e può essere un nome plurale e singolare


7

I nomi delle directory delle app devono essere un nome di pacchetto Python valido. Ciò significa che l'opzione 2 è completamente inammissibile come nome di pacchetto, sebbene possa ancora essere utilizzata per altri scopi, come la documentazione. Alla fine si tratta di uno stile personale. Se preferisci l'opzione 3, usala.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.