¿Existe una convención de nomenclatura para las aplicaciones de Django?


115

¿Existe una convención de nomenclatura preferida para crear una aplicación Django que consta de más de una palabra? Por ejemplo, ¿cuál de los siguientes se prefiere?

  1. my_django_app
  2. my-django-app Actualización: no permitido sintácticamente
  3. mydjangoapp Solución recomendada

Si bien todas ellas pueden ser opciones 1 y 3 sintácticamente permitidas, ¿hay alguna preferencia? Al observar la forma en que Django crea los nombres de las tablas combinando el nombre de la aplicación y el nombre del modelo con un guión bajo, me inclino por la opción # 1.

Pensamientos

Respuestas:


108

Deben ser nombres de paquete válidos. Eso descarta 2 ("import my-django-app" sería un error de sintaxis). PEP 8 dice:

Los módulos deben tener nombres cortos en minúsculas. Se pueden usar guiones bajos en el nombre del módulo si mejora la legibilidad. Los paquetes de Python también deben tener nombres cortos en minúsculas, aunque se desaconseja el uso de guiones bajos.

Entonces, 1 y 3 son ambos válidos, pero 3 sería el enfoque recomendado.


1
Una publicación de blog útil sobre este problema, solo para expandir: streamhacker.com/2011/01/03/django-application-conventions
Akhorus

7
Hola @ surfer190. Dos cucharadas de Django contienen un montón de buenas prácticas. Eligen el singular: blog. Es la misma opción cuando está creando un modelo: se prefiere Blog sobre Blogs.
Wim Feijen

2
En general, recomendaría usar guiones bajos, porque mejoran la legibilidad y se usan comúnmente, por ejemplo, uso mucho django_extensions y django_debug_toolbar.
Wim Feijen

14
@WimFeijen, parece que Two scoops of Django, al menos aquí , recomienda usar 'versión plural del modelo principal de la aplicación' para los nombres de las aplicaciones, con excepciones como una aplicación llamada blog, una 'buena excepción'.
Caco

Me quedo corregido. Gracias @Caco por investigar esto y educarme.
Wim Feijen

11

algunos buenos ejemplos

  • graphene_django
  • usuarios
  • pedidos
  • oauth2_provider
  • rest_framework
  • centro

en términos simples, app_namedebe tener nombres cortos y en minúsculas. Se pueden usar guiones bajos en el nombre del módulo si mejora la legibilidad. también debe tener un nombre corto y puede ser un nombre plural y singular


7

Los nombres del directorio de aplicaciones deben ser un nombre de paquete de Python válido. Esto significa que la opción 2 es completamente inadmisible como nombre de paquete, aunque todavía se puede utilizar para otros fines, como la documentación. Al final, todo se reduce al estilo personal. Si prefiere la opción 3, úsela.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.