web-dev-qa-db-fra.com

Quel est le but d'apps.py dans Django 1.9?

Je viens de passer en revue notes de version alpha pour Django 1.9 et j'ai constaté que la commande de gestion startapp(ajoute désormais un fichier apps.py .

Quel est le but de ce fichier? Le documentation startapp n'a pas fourni plus d'informations.

121
LaundroMat

Objet du fichier _apps.py_:

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

De Application Configuration documentation:

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é du docs:

Disons que vous créez une application pouvant être connectée appelée _"Rock ’n’ roll"_, puis pour fournir un nom propre à l'administrateur, nous pouvons procéder comme suit:

Dans l'application _rock_n_roll_, nous créons une classe RockNRollConfig 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 sous-classe AppConfig par défaut en spécifiant le _default_app_config_ dans le fichier _rock_n_roll/__init__.py_.

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

Ceci fera que RockNRollConfig sera utilisé lorsque _INSTALLED_APPS_ ne contient que _'rock_n_roll'_. Cela nous permet d'utiliser les fonctions AppConfig sans demander à nos utilisateurs de mettre à jour leur paramètre _INSTALLED_APPS_.

122
Rahul Gupta

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

14
knbk