Django-ClassedSettings

Usa las clases para definir la configuración
Descargar ahora

Django-ClassedSettings Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • BSD License
  • Precio:
  • FREE
  • Nombre del editor:
  • Matthew Tretter
  • Sitio web del editor:
  • http://github.com/matthewwithanm/

Django-ClassedSettings Etiquetas


Django-ClassedSettings Descripción

Django-ClassedSettings es una aplicación Django que le permite definir la configuración de su proyecto de Django utilizando las clases en lugar de los módulos. Entre otras cosas, esto le permite utilizar la herencia y las propiedades calculadas. Iniciatación La forma más fácil de instalar es usando PIP: PIP Instale Django-ClassedSettingSEnte que también puede eliminar la carpeta "CBSETTINGS" en su PYTHONPATH.SETUPTHE LUGARES donde está actualmente Configuración de django_settings_module, deberá llamar a cbsettings.configure. Así que su administrador se verá algo así: #! / Usr / bin / env Pythonimport sysimport cbsettingsif __name__ == "__main__": cbsettings.configure ('rath.to.ty.tysettings') desde django.core.management importa ejecutute_from_command_line ejecutute_from_command_line (SYSS.ARGV) Tendrá que hacer una modificación similar a su archivo WSGI.usageBasicThe solo el cambio real que necesita para realizar al archivo Configuración.py que Django crea para usted es anidar todas las variables en una clase: de CBSETTINGS .Settings Importar DjanGodeFaultSclass MySettings (DjangodeFaults): Admins = (# ('Your Name', 'Your_EstAil@example.com'),) Managers = Administradores de bases de datos = {'predeterminado': {'motor': 'django.db.backends . ',' Nombre ':' ',' Usuario ':' ',' contraseña ':' ',' host ':' ',' Puerto ':' ',}} #, etc., etcnotice de que la clase extiende DjangodeFaults. Al heredarlo de esta clase, obtiene todos los valores de configuración predeterminada que Django normalmente compone su configuración. (Estos se sienten desde Django.conf.global_settings, por lo que van a rastrear su versión de Django, no conjuntamente, no puede hacer cosas como esta: Clase MySettings (DjangodeFaults): staticfiles_finders = djandedefaults.saticfiles_finders + ('mi. Custom.StaticFileFinder ',) # Ectiembre son solo clases normales de Python, por lo que puede hacer cualquier cosa que normalmente pueda: Clase MySettings (DjangodeFaults): @Property Def Template_debug (self): # Ahora se puede cambiar una subclase de Subclass. Devuelva a uno mismo. Dibujos #, etc., etc., etc., etcUS, podría estar pensando que la clase de configuración de su configuración en los archivos es tan mala como la codificación dura de Django del módulo de configuración. Eso es cierto. Es por eso que configure () se puede pasar la ruta a cualquier llamada que devuelve una instancia de objeto de configuración. Por lo tanto, su administrador puede parecer esto: #! / Usr / bin / env pythonimport sysimport cbsettingsif __name__ == "__main__": cbsettings.configure ('path.to.my.settings.factory') de Django.core. Administración de importación ejecutute_from_command_line ejecutute_from_command_line (sys.argv) luego, en la ruta / a / my / configstion.py: def Fábrica (): Si 'Dev' en OS.Environ: Devuelve MyDebugsettings () otra cosa: devuelva MyProductionSettings () ahora puede fácilmente Cambie la clase de configuración que está utilizando en función de las condiciones que desee sin tener que hacer modificaciones a múltiples archivos. Si desea cambiar un método de fábrica para determinar qué clase de configuración para usar es una característica poderosa. Pero, por lo general, querrá cambiar las clases de configuración basadas en los mismos tipos de condiciones, por lo que Django-ClassedSettings viene con una fábrica que manejará estos casos comunes. También utiliza una sintaxis más declarativa, lo que lo hace más organizado que un método de fábrica. Así es como lo usa en su archivo de configuración: desde CBSettings Importar switcherTings.Settings Importar djangodefaultsclass myproductionsettings (djangodefaults): depuración = falso # etcclass mydevsettings (djangodefaults): depuración = true # etcswitcher.register (myproductionsettings, nombres de host = ) Switcher. Registrarse (MyDevsettings, HostNames = ) También puede usar Switcher. Registrador como decorador: desde CBSETTINGS Importar switcherfrom cbsettings.Settings Importar djangodefaults@switcher.register (HostNames = ) MyProductionSettings (DjangodeFaults): depuración = falso # etc@switcher.register (hostnames = ) clase mydevsettings (djangodefaults): depuración = VERDADERO # etc.then, dondequiera que esté llamando a la llamada, pase la variable de conmutador de su módulo: cbsettings.configure ('paty.to.my.settings.switcher') Página de inicio del producto


Django-ClassedSettings Software relacionado