À quoi sert apps.py dans Django 1.9?

Réponses:

136

Objet du apps.pydossier:

Ce fichier est créé pour aider l'utilisateur à inclure toute configuration d'application pour l'application. Grâce à cela, vous pouvez configurer certains des attributs de l'application.

De la Application Configurationdocumentation:

Les objets de configuration d'application stockent les métadonnées d'une application. Certains attributs peuvent être configurés dans les sous-classes AppConfig. D'autres sont définis par Django et en lecture seule.

Exemple tiré de la documentation:

Disons que vous créez une application enfichable appelée "Rock ’n’ roll", puis pour fournir un nom approprié à l'administrateur, nous pouvons faire ce qui suit:

Dans l' rock_n_rollapplication, nous créons une 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"

Nous pouvons faire en sorte que votre application charge cette AppConfigsous - classe par défaut en spécifiant le default_app_configdans le rock_n_roll/__init__.pyfichier.

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

Faire cela entraînera RockNRollConfigà être utilisé lorsque INSTALLED_APPScontient juste 'rock_n_roll'. Cela nous permet d'utiliser des AppConfigfonctionnalités sans exiger de nos utilisateurs de mettre à jour leurs INSTALLED_APPSparamètres.

Rahul Gupta
la source
Malheureusement, je n'ai pas eu votre réponse
hspandher
2
without requiring our users to update their INSTALLED_APPS setting.: Qu'est-ce que cela signifie: Fondamentalement, si je ne le fais pas, default_app_config = 'rock_n_roll.apps.RockNRollConfig'je dois mentionner dans INSTALLED_APPSdefault_app_config = 'rock_n_roll.apps.RockNRollConfig'
Santhosh Yedidi
15

C'est l'endroit recommandé pour placer la configuration de votre application . Cette fonctionnalité existe depuis la version 1.7, mais pour promouvoir son utilisation et permettre une configuration plus facile, le apps.pyfichier a été ajouté au modèle d'application par défaut.

knbk
la source