Django-classbasedsetings.

Usa le classi per definire le impostazioni
Scarica ora

Django-classbasedsetings. Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • BSD License
  • Prezzo:
  • FREE
  • Nome editore:
  • Matthew Tretter
  • Sito web dell'editore:
  • http://github.com/matthewwithanm/

Django-classbasedsetings. Tag


Django-classbasedsetings. Descrizione

Django-ClassBaseDettings è un'app Django che consente di definire le impostazioni del tuo progetto Django utilizzando lezioni anziché moduli. Tra le altre cose, questo consente di utilizzare l'ereditarietà e le proprietà calcolate. Installazione il modo più semplice per l'installazione è utilizzando PIP: PIP Installa Django-ClassAsedSetSetingShowever Puoi anche rilasciare la cartella "cbsettings" nel tuo pythonpath.setup i luoghi in cui sei attualmente Impostazione Django_settings_module, dovrai invece chiamare cbsettings.configure. Quindi la tua gestione desiderò qualcosa del genere: #! / Usr / bin / env pythonimport sysimport cbsettingsif __name__ == "__main__": cbsettings.configure ('path.to.mysettings') da django.core.management import execute_from_command_line execute_from_command_line execute_from_command_line execute_from_command_line execute_from_command_line (sys.argv) dovrai effettuare una modifica simile al tuo file WSGI.USAGEBASICHE solo modifiche reali che devi fare sul file impostazioni.py che django crea per te è nidificare tutte le variabili in una classe: da cbsetings .Settings import djangodefaultsclass mysetings (djangodefaults): amministratori = (# # ('il tuo nome ",' your_email@example.com '),) gestori = amministratori database = {' default ': {' Engine ':' django.db.backends . ',' Nome ':' ',' utente ':' '', 'Password': '' ',' host ':' '', 'port': '' ',}} # ecc., Etcnotice che la classe si estende DjangoDefaults. Ereditando da questa classe, ottieni tutti i valori delle impostazioni predefinite che Django normalmente componi le tue impostazioni con. (Questi vengono tirati da django.conf.global_settings, quindi si tracciano con la tua versione di Django, non di classe di base.) Puoi anche fare cose come questa: classe mysetings (DjangoDefaults): staticoFiles_Finders = DjangoDeFaults.staticFiles_Finders + ('il mio. custom.staticfilefinder ',) # ecc. Sono solo le normali classi di Python, quindi puoi fare qualsiasi cosa tu possa normalmente: classe mysetings (DjangoDefaults): @property def template_debug (sé): # ora una sottoclasse può sovrascrivere il debug e il template_debug saranno modificati di conseguenza Restituisce Self.Debug # Ecusosa di una fabbrica impostazioni potrebbe pensare che il hardcoding della classe delle impostazioni nei file sia così cattivo come il hardcoding del Django del modulo Impostazioni. È vero. Ecco perché configurare () può essere superato il percorso per qualsiasi chiamata che restituisce un'istanza dell'oggetto delle impostazioni. Quindi la tua gestione.PY potrebbe invece assomigliare a questo: #! / Usr / bin / ent pythonimport sysimport cbsettingsif __name__ == "__main__": cbsettings.configure ('path.to.my.settings.factory') da django.core. Gestione Importa EXEGUTE_FROM_COMMAND_LINE EXEGUTE_FROM_COMMAND_LINE (SYS.ARGV) quindi, nel percorso / per / my / impostazioni.py: def fabbrica (): se 'def' in os.environ: return myDebugSettings () Else: return MyProductionSettings () Ora puoi facilmente Cambia quale classe Impostazioni Stai utilizzando in base a qualsiasi condizione che desideri senza dover effettuare modifiche a più file. Utilizzando il commutatore di un metodo di fabbrica per determinare quale classe delle impostazioni utilizzata è una caratteristica potente! Ma di solito vorrai cambiare le classi di impostazioni in base agli stessi tipi di condizioni, quindi Django-classbasedsettings viene fornito con una fabbrica che gestirà questi casi comuni. Utilizza anche una sintassi più dichiarativa, che lo rende più organizzato rispetto a un metodo di fabbrica. Ecco come lo usi nel tuo file delle impostazioni: da cbsettings import switcherfrom cbsettings.settings import djangodefaultsclass myproductionsettings (djangodefaults): debug = false # etcclass mydevsettings (djangodefaults): debug = true # etcswitcher.register (myproductionsettings, hostnames = ) switcher.register (mydevsettings, hostnames = ) Puoi anche utilizzare Switcher.Register come decoratore: da CBSettings import switcherfrom cbsetings.settings import djangodefaults@switcher.register (hostnames = ) Classe MyProductionSettings (DjangoDeFaults): debug = false # etc@switcher.register (hostnames = ) Classe MyDevSettings (DjangoDeFaults): Debug = True # ectthen, ovunque tu stia chiamando configurazione, passa la variabile Switcher del tuo modulo: cbsettings.configure ('path.to.my.settings.switcher') Homepage del prodotto


Django-classbasedsetings. Software correlato