django-turbasedsettings.

Use classes para definir as configurações
Baixe Agora

django-turbasedsettings. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • BSD License
  • Preço:
  • FREE
  • Nome do editor:
  • Matthew Tretter
  • Site do editor:
  • http://github.com/matthewwithanm/

django-turbasedsettings. Tag


django-turbasedsettings. Descrição

Django-ClassBasedSettings é um aplicativo Django que permite definir as configurações do seu projeto Django usando classes em vez de módulos. Entre outras coisas, isso permite que você use herança e propriedades calculadas.Enstalação A maneira mais fácil de instalar é usando PIP: PIP Instalar Django-ClassBasedSetingShowever Você também pode simplesmente soltar a pasta "CBSettings" para o seu PythonPath.setuphe lugares onde você está atualmente Configurando Django_Settings_Module, você terá que chamar CBSettings.configure. Assim, o seu manage.py vai parecer algo assim: #! / Usr / bin / env pythonimport sysimport cbstingsif __name__ == "__main__": cbsettings.configure ('path.to.mysettings') de django.core.management Import Execute_From_Command_line Execute_From_Command_line (sys.argv) você terá que fazer uma modificação semelhante ao seu arquivo WSGI.UsageBasicThe apenas a mudança real que você precisa fazer para o arquivo settings.py que Django cria para você é aninhar todas as variáveis em uma classe: de CBSettings .Settings Import DjanGodeFaultSclass MySettings (DjangodeFaults): Admins = (# ('seu nome', 'your_email@example.com'),) gerenciadores = Bancos de dados Admins = {'Padrão': {'Engine': 'Django.db.backends . ',' Nome ':' ',' User ':' ',' Senha ':' ',' host ':' ',' Porto ':' ',}} # etc, etcnotice que a classe estende djangedefaults. Ao herdar desta classe, você recebe todos os valores de configurações padrão que Django normalmente compitute suas configurações. (Estes são retirados de Django.conf.global_settings para que eles vão acompanhar com sua versão do django, não classbasedsettings.) Você também pode fazer coisas assim: Mysettings de classe (Djangedefaults): staticfiles_finders = djangedefaults.staticfiles_finders + ('meu. Custom.StaticFileFinder ',) # Etceses são apenas classes de python normais, para que você possa fazer qualquer coisa que você normalmente pode: Classe Mysettings (Djangedefaults): @Property Def Template_Debug (auto): # Agora, uma subclasse pode substituir a depuração e o template_debug será alterado de acordo Devolva o self.debug # etc Obsinando uma fábrica de configurações Você pode estar pensando que hardcoding sua classe de configurações em arquivos é tão ruim quanto o disco rígido do Django do módulo de configurações. Isso é verdade. É por isso que configurar () pode ser passado o caminho para qualquer chamada que retorne uma instância de objeto de configurações. Assim, o seu gerenciamento pode ficar assim: #! / Usr / bin / env pythonimport Sysimport CBSettingsif __Name__ == "__main__": cbsettings.configure ('path.to.my.settings.factory') de django.core. Gerenciamento Import Execute_From_Command_line Execute_From_Command_line (sys.argv) então, em caminho / para / my / settings.py: def fábrica (): se 'dev' em os.environ: retornar mydebugsettings () else: retornar myproductionsettings () agora você pode facilmente Altere qual classe de configurações você está usando com base em quaisquer condições que você deseja sem ter que fazer modificações em vários arquivos.Using switcherusing um método de fábrica para determinar qual classe de configurações usar é um recurso poderoso! Mas geralmente você vai querer alternar as classes de configurações com base nos mesmos tipos de condições, então o django-classbasedsettings vem com uma fábrica que lidará com esses casos comuns. Ele também usa uma sintaxe mais declarativa, o que torna mais organizada do que um método de fábrica. Aqui está como você o usa em seu arquivo de configurações: De CBSettings Import SwitcerFrom CBSettings.Settings Importar DjangedeFaultsClass MyProductionSettings (DjangodeFaults): Debug = Falso # etcClass MyDevsettings (Djangedefaults): Debug = True # etcswitcher.Register (myproductionsettings, hostnames = ) comutador.Register (myDevsettings, hostnames = ) você também pode usar o comutador.register como decorador: de cbsettings import switcherfrom cbsettings.settings importar djangedefaults@witcher.register (hostnames = ) classe myproductionsettings (djangodefaults): debug = false # etc@switcher.register (hostnames = ) classe mydevsettings (djangodefaults): depuração = Verdade # etcthen, onde quer que você esteja ligando configure, passe sua variável de comutador do seu módulo: cbsettings.configure ('path.to.my.settings.switcher') página inicial do produto


django-turbasedsettings. Software Relacionado