针对(仅)Python应用的超简单设置管理
项目描述
1 这是什么?
如果你是一位喜欢将应用程序配置保存在简单的Python模块中的Python开发者,并且你的应用程序有一些默认设置和开发/测试/生产设置文件,收敛可以帮助你合并设置,并根据环境变量以所需的设置启动应用程序。
2 入门
2.1 易于使用
./settings/default_settings.py
-------------------
SERVER_PORT = 8000
DOMAIN = 'example.com'
ADMIN_EMAIL = 'admin@example.com'
./settings/dev_settings.py
---------------
SERVER_PORT = 9000
import settings
print(settings.SERVER_PORT) # 9000
print(settings.DOMAIN) # example.com
print(settings.get('VAR_THAT_DOESNT_EXIST')) # None
2.2 安装
pip install converge
2.3 支持的环境变量
_所有指令都是可选的_。
APP_MODE
有效值有
dev(默认值)
test
staging
beta
prod
根据适当的模式(如果可用),将使用相应的设置模块
SETTINGS_DIR
默认为“settings”。
如果你的设置文件在不同的目录中,请使用SETTINGS_DIR将收敛指向正确的路径。
GIT_SETTINGS_REPO
支持从git仓库获取应用程序设置。如果指定了此类配置,则git仓库将被克隆到SETTINGS_DIR。
GIT_SETTINGS_SUBDIR
如果你使用同一个git仓库托管多个应用程序的配置,并且设置文件在不同的子目录中
示例
my-git-repo/ | |- myapp1 | | | |- default_settings.py | |- prod_settings.py | | |- myapp2
export SETTINGS_DIR='appsettings' export GIT_SETTINGS_REPO='git@github.com:shon/converge-test-settings.git' export GIT_SETTINGS_SUBDIR='myapp1'
在这种情况下,myapp1/中的所有*_settings.py文件将被复制到appsettings。
示例
export APP_MODE='test' export SETTINGS_DIR='settings' export GIT_SETTINGS_REPO='git@github.com:shon/converge-test-settings.git' export GIT_SETTINGS_SUBDIR='myapp1'
3 支持的设置文件
默认值: default_settings.py
- 模式
生产: prod_settings.py
开发:dev_settings.py
测试:test_settings.py
预发布:staging_settings.py
测试版:beta_settings.py
特定部署:site_settings.py
4 指南
设置文件通常是Python文件,可以包含有效的Python代码,但以下是一些用户指南:
使用模块变量进行全局应用程序配置
在命名设置变量时使用大写字母
对于值,首选基本的Python数据类型,如字符串、整数、元组
例如:SERVER_PORT = 1234
避免复杂的Python操作
- 使用简单的类进行配置部分
class DB: HOST = 'db.example.com' PORT = 1234
- 使用简单的字符串操作以避免重复
BASE_DOMAIN = 'example.com' API_URL = 'api.' + BASE_DOMAIN``
5 覆盖设置
在site_settings.py中定义模块变量
5.1 示例
default_settings.py
SERVER_PORT = 9999
site_settings.py
SERVER_PORT = 8888
6 覆盖部分设置
示例
default_settings.py
class DB:
HOST = 'db.example.com'
PORT = 1234
site_settings.py
DB.PORT = 1111
7 (略微)高级使用
如果要将所有settings.py文件保存在一个目录中,请使用SETTINGS_DIR环境变量。
7.1 使用SETTINGS_DIR
export APP_MODE='prod'
export SETTINGS_DIR='settings/fat_server'
这对于需要部署具有不同配置的多个应用程序实例非常有用
`-- settings/ | |-- server1/ | | | |--default_settings.py | |--prod_settings.py | |-- server2/ | |--default_settings.py | |--prod_settings.py | |
项目详情
converge-1.1.1.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b4f06e3a1fc7106ff3ebc3031e2eb3b33a72cf9237e1211470c700a04a058b4e |
|
MD5 | 53b33cc049d71792b1b35387821e8d58 |
|
BLAKE2b-256 | 5239b194ede7ac95869a80e50704c2309413a3eb0ec3c85a574af2b6190963e3 |