未知

conf的Python项目详细描述


confy
=


实用灵活的配置加载器,使您的应用程序设置干净而性感。



……图片::https://badge.fury.io/py/confy.png
:目标:https://badge.fury.io/py/confy

…图片::https://api.travis-ci.org/jqb/confy.png?branch=master
:目标:https://travis ci.org/jqb/confy

…图片::https://coveralls.io/repos/jqb/confy/badge.png?branch=master
:目标:https://coveralls.io/r/jqb/confy?分支=主

…图片::https://pypip.in/d/confy/badge/badge.png
:target:https://crate.io/packages/confy/



>
>您可以在这里找到相关文档:https://confy.readthedocs.org/en/latest/



>




*python 2.6
*python2.7
*pytho3.2


*pytho3.3.3.3













idea很简单,并且由(可能不仅是)django
社区开发,但从未被标准化。这里是:



1)将您的配置保存在
settings/conf/config/<;中的单独python模块中,不管您如何称它为>;*module*如下::

settings/
nts
--development.py=>;更改/添加在开发中运行应用程序所需的所有内容
--production.py=>;更改/添加在生产中运行应用程序所需的所有内容
`--local.py=>;取决于您当前为自己工作的计算机的所有内容团队中的每个人)
安全性-将其从版本控制中删除



2)按照您希望获得
配置的顺序加载这些文件。使用环境变量来决定应加载哪些设置。假设变量名为"env",这里有
在settings/\uu init\uy

代码块::python


import os


confy=confy.loader(uu file_uu)

config=confy.merge(
confy.from_u modules('base',os.environ.get('env',development'),
confy.from_u modules('local',silent=true),





一天,您可以简单地导入它,并为您设置所有的链接。代码块::python

>;>from settings import config
>;>done!
>;
>;



这是基本的功能,但"confy"有很多功能可供选择。




why
--


1)我相信干净而优雅的解决方案。



<2)*.in i和"configparser"类似的解析器(例如来自塔架/金字塔)很好,但ISS很少。ue与它们一起:

=>;每个设置都有一个类型。而且您必须编写将文本更改为其他类型的代码。

=>;\uuu getitem\uu语法太冗长,实际上在某些情况下太冗长了

当您将配置/设置保存在简单的python文件中时,您不会遇到这个问题,但是没有标准化的
一个也是唯一一个保持和loa的好方法。d那些文件。



3)最近我发现了有趣的演示
(https://speakerdeck.com/brutasse/stop writing settings files)
关于从环境变量注入的配置。我喜欢这个想法(直到第12张幻灯片),但它与*ini
files





confy配置源有相同的问题,您只需从系统的任何位置从任何您想要的源加载配置即可。这使您在如何
和在何处保留配置方面具有灵活性。

。代码块::python

导入操作系统
import confy

confy=confy.loader(u file_uu)

config=confy.merge(

主要读取模块
confy.from_u modules('base',os.environ.get('env',development'),
confy.from_u modules('local',silent=true),\no com如果没有"local.py"

重新设置这不是问题

如果需要来自ini文件的其他数据-没有问题
confy.from廑ini('~/.project廑u sensitive廑data.ini',silent=true),

//cr.yp.to/daemontools/envdir.html)。
记住
变量可能相互覆盖。



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java创建猜谜游戏程序   JavaWebSocketContainer。connectToServer似乎挂起了   如何在java中中断函数   java c#socket client multiple BeginSend()未到达服务器   不可见的组件然后在Java中的窗格之间切换   java在应用程序类中使用静态接口安全吗?   java等待函数完成,直到回调到来   使用DataOutputStream时的java新行,Android   java服务对象的定义是什么?   基于视图的javahibernate复合密钥   java将varchar连接到char在JPA(oracle)中不起作用   如何在java中通过point类读取多个点?