Was ist der Zweck von apps.py in Django 1.9?

Antworten:

136

Zweck der apps.pyDatei:

Diese Datei wird erstellt, um dem Benutzer zu helfen, die Anwendungskonfiguration für die App einzuschließen. Auf diese Weise können Sie einige Attribute der Anwendung konfigurieren.

Aus der Application ConfigurationDokumentation:

Anwendungskonfigurationsobjekte speichern Metadaten für eine Anwendung. Einige Attribute können in AppConfig-Unterklassen konfiguriert werden. Andere werden von Django eingestellt und sind schreibgeschützt.

Beispiel aus den Dokumenten:

Nehmen wir an, Sie erstellen eine steckbare App mit dem Namen "Rock ’n’ roll". Um dem Administrator einen richtigen Namen zu geben, können wir Folgendes tun:

In der rock_n_rollApp erstellen wir eine RockNRollConfigAppConfig-Klasse.

#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"

Wir können Ihre Anwendung dazu bringen, diese AppConfigUnterklasse standardmäßig zu laden, indem Sie die default_app_configin der rock_n_roll/__init__.pyDatei angeben.

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

RockNRollConfigWenn Sie dies tun, wird es verwendet, wenn es INSTALLED_APPSnur enthält 'rock_n_roll'. Auf diese Weise können wir AppConfigFunktionen nutzen, ohne dass unsere Benutzer ihre INSTALLED_APPSEinstellungen aktualisieren müssen .

Rahul Gupta
quelle
Leider habe ich Ihre Antwort nicht bekommen
hspandher
2
without requiring our users to update their INSTALLED_APPS setting.: Was bedeutet das: Grundsätzlich, wenn ich nicht tue, default_app_config = 'rock_n_roll.apps.RockNRollConfig'dann muss ich in INSTALLED_APPSdefault_app_config = 'rock_n_roll.apps.RockNRollConfig'
Santhosh Yedidi
15

Dies ist der empfohlene Ort, an dem Sie Ihre Anwendungskonfiguration ablegen können . Diese Funktion ist seit 1.7 apps.pyverfügbar. Um die Verwendung zu fördern und eine einfachere Konfiguration zu ermöglichen, wurde die Datei zur Standard-App-Vorlage hinzugefügt.

knbk
quelle