Qual é o objetivo do apps.py no Django 1.9?


Respostas:


136

Objetivo do apps.pyarquivo:

Este arquivo é criado para ajudar o usuário a incluir qualquer configuração de aplicativo para o aplicativo. Usando isso, você pode configurar alguns dos atributos do aplicativo.

Da Application Configurationdocumentação:

Os objetos de configuração do aplicativo armazenam metadados para um aplicativo. Alguns atributos podem ser configurados nas subclasses AppConfig. Outros são definidos pelo Django e somente leitura.

Exemplo dos documentos:

Digamos que você esteja criando um aplicativo conectável chamado e "Rock ’n’ roll", para fornecer um nome adequado ao administrador, podemos fazer o seguinte:

No rock_n_rollaplicativo, criamos uma RockNRollConfigclasse AppConfig.

#rock_n_roll/apps.py
from django.apps import AppConfig

class RockNRollConfig(AppConfig): # Our app config class
    name = 'rock_n_roll'
    verbose_name = "Rock ’n’ roll"

Podemos fazer com que seu aplicativo carregue essa AppConfigsubclasse por padrão, especificando o default_app_configno rock_n_roll/__init__.pyarquivo

# rock_n_roll/__init__.py    
default_app_config = 'rock_n_roll.apps.RockNRollConfig'

Fazer isso fará com RockNRollConfigque seja usado quando INSTALLED_APPSapenas contém 'rock_n_roll'. Isso nos permite usar os AppConfigrecursos sem exigir que nossos usuários atualizem suas INSTALLED_APPSconfigurações.


Infelizmente eu não recebi sua resposta embora
hspandher

2
without requiring our users to update their INSTALLED_APPS setting.: O que isso significa: Basicamente, se eu não faço default_app_config = 'rock_n_roll.apps.RockNRollConfig', então eu tenho que mencionar em INSTALLED_APPSdefault_app_config = 'rock_n_roll.apps.RockNRollConfig'
Santhosh Yedidi

15

É o local recomendado para colocar a configuração do seu aplicativo . Esse recurso está aqui desde 1.7, mas para promover seu uso e facilitar a configuração, o apps.pyarquivo foi adicionado ao modelo de aplicativo padrão.

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.