Django-Class-Basedsettings.

Verwenden Sie Klassen, um die Einstellungen zu definieren
Jetzt downloaden

Django-Class-Basedsettings. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • BSD License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Matthew Tretter
  • Website des Verlags:
  • http://github.com/matthewwithanm/

Django-Class-Basedsettings. Stichworte


Django-Class-Basedsettings. Beschreibung

Django-ClassBaSedSettings ist eine Django-App, mit der Sie Ihre Django-Projekteinstellungen mit den Klassen anstelle von Modulen definieren können. Dadurch können Sie unter anderem die Erbschaft und berechnete Eigenschaften verwenden Wenn Sie django_settings_module einstellen, müssen Sie stattdessen CBSETTINGS.Configure anrufen. Also wird dein management (sys.argv) Sie müssen eine ähnliche Änderung Ihrer WSGI-Datei vornehmen .Settings Import DjangodeFaultsClass MySettings (DjangodeFaults): admins = (# ('your name', 'your_email@example.com'),),) Manager = Admins Datenbanken = {'Default': {'Engine': 'django.db.backends' . ',' Name ':' ',' Benutzer ':' ',' Passwort ':' ',' Host ':' ',' Port ':' ',}} # etc, etcnotice, dass die Klasse DjangodeFaults erweitert. Durch das Erben von dieser Klasse erhalten Sie alle Standardeinstellungen Werte, die Django Ihre Einstellungen normalerweise mit den Einstellungen zusammenstellen. (Diese werden von django.conf.global_settings eingereicht, sodass sie mit Ihrer Version von Django, nicht ClassbasedSettings, verfolgen werden.) Sie können auch Sachen so tun: Klasse MySettings (Djangodefaults): StaticFiles_Finders = djangodefaults.staticfiles_finders + ('mein. Custom.staticFileFinder ',) # Etcthese sind nur normale Python-Klassen, so dass Sie irgendetwas tun können, so dass Sie normalerweise tun können Return self.debug # ETCUsing Ein Einstellungs-FactoryYou dankt, dass das Hardcoding-Class in Dateien in Dateien nur so schlecht ist wie das Hardcoding von Django des Einstellungsmoduls. Das stimmt. Deshalb kann Configure () den Pfad zu einem beliebigen Callable weitergeben, der eine Einstellungsobjektinstanz zurückgibt. Also kann dein management.py so aussehen Management Import Execute_From_Command_Line Execute_from_command_line (sys.argv), in Pfad / zu / my / settings.py: def Factory (): Wenn 'dev' in os.environ: Rückgabe von MyDeBugsettings () Andere: Rückgabe MyProductionSettings () Ändern Sie, welche Einstellungsklasse Sie auf der Grundlage aller Bedingungen, die Sie verwenden, ohne Änderungen an mehreren Dateien vornehmen zu müssen. Verwenden Sie die Umschaltung einer Werksmethode, um zu ermitteln, welche Einstellungsklasse verwendet werden soll, eine leistungsstarke Funktion! In der Regel möchten Sie jedoch Einstellungsklassen basierend auf denselben Bedingungen wechseln, sodass Django-Class-Basedsettings eine Fabrik mit diesen gewöhnlichen Fällen mithalten wird. Es verwendet auch eine deklarierende Syntax, die sie organisiert macht als eine Fabrikmethode. So verwenden Sie es in Ihrer Einstellungsdatei: von CBSETTINGS-Import Switcher- CBSETTINGS.Settings Import DjangodeFaultSclass MyProductionSettings (DjangodeFaults): Debug = false # etcclass mydevsettings (djangodefaults): debug = true # etcswitcher.register (MyProductionSettings, Hostnames = ) Switcher.Register (MyDeVsettings, Hostnames = ) Sie können den Switcher auch verwenden.Register als Dekorateur: von CBSETTINGS Import Switchervon CBSETTINGS.Settings Import djangodefaults@switcher.Register (Hostnames = ) Klasse MyProductionSettings (DjangodeFaults): debug = false # etc@switcher.register (Hostnames = [MyCompuer.Home', 'BillsComputer.Home') Klasse Mydevsettings (Djangodefaults): Debugg = True # Etcthen, wo immer Sie konfigurieren, geben Sie die Switcher-Variable Ihres Moduls an: CBSETTINGS.Configure ('path.to.my.settings.switcher') Produkt-Homepage


Django-Class-Basedsettings. Zugehörige Software