Qual è lo scopo di apps.py in Django 1.9?


Risposte:


136

Scopo del apps.pyfile:

Questo file viene creato per aiutare l'utente a includere qualsiasi configurazione dell'applicazione per l'app. Usando questo, puoi configurare alcuni degli attributi dell'applicazione.

Dalla Application Configurationdocumentazione:

Gli oggetti di configurazione dell'applicazione memorizzano i metadati per un'applicazione. Alcuni attributi possono essere configurati nelle sottoclassi di AppConfig. Altri sono impostati da Django e di sola lettura.

Esempio dai documenti:

Diciamo che stai creando un'app collegabile chiamata "Rock ’n’ roll", quindi per fornire un nome proprio per l'amministratore possiamo fare quanto segue:

Nell'app rock_n_rollcreiamo una 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"

Possiamo fare in modo che la tua applicazione carichi questa AppConfigsottoclasse per impostazione predefinita specificando default_app_confignel rock_n_roll/__init__.pyfile.

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

In questo modo verrà RockNRollConfigutilizzato quando INSTALLED_APPScontiene solo 'rock_n_roll'. Questo ci consente di utilizzare le AppConfigfunzionalità senza richiedere ai nostri utenti di aggiornare le loro INSTALLED_APPSimpostazioni.


Purtroppo non ho ricevuto la tua risposta
hspandher,

2
without requiring our users to update their INSTALLED_APPS setting.: Cosa significa: in pratica, se non lo faccio, default_app_config = 'rock_n_roll.apps.RockNRollConfig'devo menzionarlo in default_app_config = 'rock_n_roll.apps.RockNRollConfig'
INSTALLED_APPS

15

È il posto consigliato per inserire la configurazione dell'applicazione . Questa funzione è disponibile dall'1.7, ma per promuoverne l'utilizzo e consentire una configurazione più semplice, il apps.pyfile è stato aggiunto al modello di app predefinito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.