分布式django配置的flasky方法

django-kungfu的Python项目详细描述


姜戈功夫

django-kungfu提供设置django配置的能力 机制,因此很容易集成与开发或部署相关的 设置覆盖。

这个想法是在我使用了一段时间漂亮的配置系统之后产生的。 在Flask中实现。事实上,大部分代码都是受启发的 由位于here的烧瓶实现。

示例用法

与django项目的集成相当简单,取决于 偏好。一个可能的设置可能如下:

# At the bottom of your/settings.py file just add the following lines
from django_kungfu import Configurator
config = Configurator(locals())
config.from_pyfile(os.path.join(os.path.dirname(__file__), 'dev_settings.py'))
config.from_envvar('DJANGO_SETTINGS_OVERRIDE')

简而言之,当加载django设置文件时会发生以下情况: #如果dev_settings.py文件与设置文件位于同一目录中, 所有的上例常量都被加载到本地上下文中。 一个 #如果Django_settings_override环境变量已设置并指向 一个有效的配置文件,该配置文件以相同的方式加载

默认情况下,如果未找到指定的文件或环境变量,或 无效,配置程序将自动失败。例如,这很有用 使用生产系统中不可用的开发设置时 我们希望保留一个设置文件作为配置入口点。

如果要强制特定配置文件的存在,或者 环境变量可以将silent=False与 方法。

使用此配置,您可以轻松地设置生产环境 通过在生产wsgi文件中设置适当的环境变量:

# prod.wsgi
import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
os.environ.setdefault("DJANGO_SETTINGS_OVERRIDE",
                      os.path.expanduser("~/etc/myproject/prod_settings.py"))

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

为什么是功夫?

之所以选择这个名字,是因为功夫用我的母语发音(一个地区 罗马尼亚方言)听起来类似于config(confu)。当然还有我对军事的同情 艺术,尤其是功夫,带来了几点。

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

推荐PyPI第三方库


热门话题
java OpenShift的齿轮特性   java如何在Liferay站点的每个页面上放置公司地址和电话?   java确定整数数组中是否存在一个子集,在两个条件下求和到给定的目标值   序列化为什么java中的serialVersionUID必须是静态的、最终的、长类型的?   java响应返回null   java注入接口实现Quarkus   java我不明白为什么第二次排序的运行时间比第一次慢?   (Java)显示图像的最佳方式?   java Android应用程序因添加布局而崩溃   java如何在运行时获取泛型变量的类   java Selenium web驱动程序:无效的选择器:*:WebKitFullScreenSentor   Spring中的java注入值始终为空   Eclipse中带有TestNG插件的@BeforeSuite和@AfterSuite的java问题   使用trycatch块、filewriter和printwriter在java中创建自定义类   如何在Java 安卓上绘制相交的两条线