Existe uma convenção de nomenclatura para aplicativos Django


115

Existe uma convenção de nomenclatura preferencial para a criação de um aplicativo Django consistindo em mais de uma palavra? Por exemplo, qual das opções a seguir é a preferida?

  1. my_django_app
  2. my-django-app Atualização: não permitido sintaticamente
  3. mydjangoapp Solução recomendada

Embora todas elas possam ser as opções 1 e 3 são sintaticamente permitidas, há uma preferência? Observando como o Django cria os nomes das tabelas combinando o nome do aplicativo e o nome do modelo com um sublinhado, estou me opondo à opção nº 1.

Pensamentos?

Respostas:


108

Eles devem ser nomes de pacote válidos. Isso exclui 2 ("import my-django-app" seria um erro de sintaxe). PEP 8 diz:

Os módulos devem ter nomes curtos, todos em minúsculas. Sublinhados podem ser usados ​​no nome do módulo se melhorar a legibilidade. Os pacotes Python também devem ter nomes curtos, todos em minúsculas, embora o uso de sublinhados seja desencorajado.

Portanto, 1 e 3 são válidos, mas 3 seria a abordagem recomendada.


1
Uma postagem útil no blog sobre esse problema, apenas para expandir: streamhacker.com/2011/01/03/django-application-conventions
Akhorus

7
Olá @ surfer190. Duas colheres de Django contém uma tonelada de boas práticas. Eles escolhem o singular: blog. É a mesma escolha quando você está criando um Modelo: Blog é preferível a Blogs.
Wim Feijen

2
Em geral, eu recomendaria usar sublinhados, porque eles melhoram a legibilidade e são comumente usados, por exemplo, eu uso muito django_extensions e django_debug_toolbar.
Wim Feijen

14
@WimFeijen, parece que Two scoops of Django, pelo menos aqui , recomenda o uso de 'versão plural do modelo principal do aplicativo' para nomes de aplicativos, com exceções como um aplicativo chamado blog, uma 'boa exceção'.
Caco

Eu estou corrigido. Obrigado @Caco por investigar isso e me educar.
Wim Feijen

11

alguns bons exemplos

  • graphene_django
  • Comercial
  • ordens
  • oauth2_provider
  • rest_framework
  • enquetes

em termos simples, app_namedeve ter nomes curtos, todos em minúsculas. Sublinhados podem ser usados ​​no nome do módulo se melhorar a legibilidade. também deve ter um nome curto e pode ser um nome no plural e no singular


7

Os nomes do diretório do aplicativo devem ser um nome de pacote Python válido. Isso significa que a opção 2 é completamente inadmissível como nome de pacote, embora ainda possa ser usada para outros propósitos, como documentação. No final das contas, tudo se resume ao estilo pessoal. Se você preferir a opção 3, use-a.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.