Django-appconf je aplikace Django pro konfiguraci objektu, které mají být použity pro manipulaci konfigurace výchozí balíkových aplikací elegantně & nbsp;. Řekněme, že máte aplikaci s názvem MyApp a chcete definovat několik výchozí hodnoty, a odkazují na výchozí nastavení snadno kód aplikace. Přidejte settings.py do vašeho app models.py:
od appconf import AppConf
třída MyAppConf (AppConf):
& Nbsp; SETTING_1 = "jeden"
& Nbsp; SETTING_2 = (
& Nbsp; "dva",
& Nbsp;)
& Nbsp; třída Meta:
& Nbsp; app_label = 'myapp'
Nastavení se inicializuje s app etiketě, kde je nastavení nachází na. Např. pokud vaše models.py je v balíčku MyApp, bude prefix nastavení být MyApp.
Třída MyAppConf bude automaticky podíváme na globální nastavení Django je určit jednotlivá nastavení. Např. přidávání to settings.py vašich stránek nastaví nastavení SETTING_1 app způsobem:
MYAPP_SETTING_1 = "uno"
Použít
Namísto použití z nastavení django.conf dovozních jako byste obvykle děláte, můžete volitelně přepínat s pomocí své aplikace vlastní nastavení modul pro přístup k nastavení:
od myapp.models import MyAppConf
myapp_settings = MyAppConf ()
print myapp_settings.MYAPP_SETTING_1
AppConf třída automaticky fungovat jako proxy pro ostatní nastavení, které nesouvisí s app. Například následující kód je naprosto platný:
od myapp.models import MyAppConf
Nastavení = MyAppConf ()
pokud "MyApp" v settings.INSTALLED_APPS:
& Nbsp; print "Hurá, myapp je instalován!"
V případě, že chcete nastavit některá nastavení Ad-hoc, můžete jednoduše předat hodnotu při instanciating třídy AppConf:
od myapp.models import MyAppConf
Nastavení = MyAppConf (SETTING_1 = 'něco úplně jiného ")
pokud "jiné" v settings.MYAPP_SETTINGS_1:
& Nbsp; print "Hurá, jsem jiná!"
Custom manipulaci
Každý z nastavení mohou být individuálně konfigurovány s zpětná volání. Například, v případě, že hodnota nastavení závisí na dalších nastavení nebo jiných závislostí. Následující příklad nastaví jedno nastavení na jinou hodnotu v závislosti na světovém měřítku:
od django.conf nastavení dovozních
od appconf import AppConf
třída MyCustomAppConf (AppConf):
& Nbsp; AKTIVNÍ = True
& Nbsp; def configure_enabled (self, hodnota):
& Nbsp; návratová hodnota a nikoli self.DEBUG
Hodnota MYAPP_ENABLED se bude lišit v závislosti na hodnotě globálního nastavení ladění.
Každý z nastavení aplikace lze přizpůsobit poskytnutím způsobu, který bere configure_ výchozí hodnotu, jak je definováno v atributy třídy jako jediný parametr. Metoda musí vrátit hodnotu, aby se použít pro nastavení v pochybnost.
Po každé metody _configure mají být volán, bude třída AppConf dodatečně volání hlavní metody konfigurovat, která může být použita k tomu žádné další vlastní manipulaci konfiguraci, např pokud více nastavení závisí na sobě navzájem. Za to configured_data slovník je uveden v nastavení instance:
od django.conf nastavení dovozních
od appconf import AppConf
třída MyCustomAppConf (AppConf):
& Nbsp; AKTIVNÍ = True
& Nbsp; MODE = 'vývoj'
& Nbsp; def configure_enabled (self, hodnota):
& Nbsp; návratová hodnota a nikoli self.DEBUG
& Nbsp; def konfigurovat (self):
& Nbsp; mode = self.configured_data ['MODE']
& Nbsp; enabled = self.configured_data ['AKTIVNÍ']
& Nbsp; pokud není povolen a mode = "rozvoj":
& Nbsp; print "VAROVÁNÍ: app není povolena v režimu% s!" Režim%
Co je nového v této verzi:.
- Přidány zkoušky se 100% pokrytím
- Přidána schopnost podtřídy Meta tříd.
- Opraveny různé chyby s subclassing a konfigurace v podtříd.
Co je nového ve verzi 0.2.2:
- Pevná dalším problémem v configure () API.
Požadavky na :
- Python
- Django
Komentáře nebyl nalezen