棱锥体autoenv
pyramid-auto-env的Python项目详细描述
棱锥体自动环境
有助于用环境变量覆盖ini配置的金字塔库。
开始
这些说明将帮助您安装库并使用其功能。
安装
pip install pyramid-auto-env
运行测试
安装测试依赖项
pip install -e ".[test]"
运行测试
pytest
使用
用环境变量替换inifile的mail.password
ini文件
###
# app configuration
# https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/environment.html
###
[app:main]
use = egg:myproject
pyramid.reload_templates = true
pyramid.debug_authorization = false
pyramid.debug_notfound = false
pyramid.debug_routematch = false
pyramid.default_locale_name = en
pyramid.includes =
pyramid_debugtoolbar
mail.password = local
# By default, the toolbar only appears for clients from IP addresses
# '127.0.0.1' and '::1'.
# debugtoolbar.hosts = 127.0.0.1 ::1
###
# wsgi server configuration
###
[server:main]
use = egg:waitress#main
listen = localhost:6543
###
# logging configuration
# https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/logging.html
###
[loggers]
keys = root, pyramid_auto_env
[handlers]
keys = console
[formatters]
keys = generic
[logger_root]
level = INFO
handlers = console
[logger_pyramid_auto_env]
level = INFO
handlers = console
qualname = pyramid_auto_env
propagate = 0
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s:%(lineno)s][%(threadName)s] %(message)s
环境
export MYPROJ_MAIL_PASSWORD = S3kr3t
代码
frompyramid.configimportConfiguratorfrompyramid_auto_envimportget_env_or_ini@autoenv_settings(prefix='myproj')defmain(global_config,**settings):""" This function returns a Pyramid WSGI application. """config=Configurator(settings=settings)config.include('pyramid_jinja2')config.add_static_view('static','static',cache_max_age=3600)config.add_route('home','/')config.scan()returnconfig.make_wsgi_app()
环境变量格式
环境变量查找将搜索<prefix.upper()>_<settings_name.upper().replace(['.-', '_'])>
示例(prefix=myproj):
host.url -> MYPROJ_HOST_URL
mail-smtp -> MYPROJ_MAIL_SMTP
my.project.super-secret -> MYPROJ_MY_PROJECT_SUPER_SECRET