dj environ允许您利用12个受因子启发的环境变量来配置django应用程序。
dj-environ的Python项目详细描述
dj environ允许您利用12个受因子启发的环境变量来配置django应用程序。
这是安装dj environ之前的settings.py文件
之后: 您还可以将read_env()显式路径传递给.env文件。 创建一个.env文件: 只有两个类,environ.Env和environ.Path 为了使用不安全的字符,在设置到.env文件之前,必须使用urllib.parse.encode编码。 参考https://perishablepress.com/stop-using-unsafe-characters-in-urls/。 为了设置django的电子邮件配置,您可以使用以下代码:importosSITE_ROOT=os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))DEBUG=TrueTEMPLATE_DEBUG=DEBUGDATABASES={'default':{'ENGINE':'django.db.backends.postgresql_psycopg2','NAME':'database','USER':'user','PASSWORD':'githubbedpassword','HOST':'127.0.0.1','PORT':'8458',}'extra':{'ENGINE':'django.db.backends.sqlite3','NAME':os.path.join(SITE_ROOT,'database.sqlite')}}MEDIA_ROOT=os.path.join(SITE_ROOT,'assets')MEDIA_URL='media/'STATIC_ROOT=os.path.join(SITE_ROOT,'static')STATIC_URL='static/'SECRET_KEY='...im incredibly still here...'CACHES={'default':{'BACKEND':'django.core.cache.backends.memcached.MemcachedCache','LOCATION':['127.0.0.1:11211','127.0.0.1:11212','127.0.0.1:11213',]},'redis':{'BACKEND':'django_redis.cache.RedisCache','LOCATION':'127.0.0.1:6379:1','OPTIONS':{'CLIENT_CLASS':'django_redis.client.DefaultClient','PASSWORD':'redis-githubbed-password',}}}
importenvironroot=environ.Path(__file__)-3# three folder back (/a/b/c/ - 3 = /)env=environ.Env(DEBUG=(bool,False),)# set default values and castingenviron.Env.read_env()# reading .env fileSITE_ROOT=root()DEBUG=env('DEBUG')# False if not in os.environTEMPLATE_DEBUG=DEBUGDATABASES={'default':env.db(),# Raises ImproperlyConfigured exception if DATABASE_URL not in os.environ'extra':env.db('SQLITE_URL',default='sqlite:////tmp/my-tmp-sqlite.db')}public_root=root.path('public/')MEDIA_ROOT=public_root('media')MEDIA_URL='media/'STATIC_ROOT=public_root('static')STATIC_URL='static/'SECRET_KEY=env('SECRET_KEY')# Raises ImproperlyConfigured exception if SECRET_KEY not in os.environCACHES={'default':env.cache(),'redis':env.cache('REDIS_URL')}
DEBUG=on
# DJANGO_SETTINGS_MODULE=myapp.settings.dev
SECRET_KEY=your-secret-key
DATABASE_URL=psql://urser:un-githubbedpassword@127.0.0.1:8458/database
# SQLITE_URL=sqlite:///my-local-sqlite.db
CACHE_URL=memcache://127.0.0.1:11211,127.0.0.1:11212,127.0.0.1:11213
REDIS_URL=rediscache://127.0.0.1:6379:1?client_class=django_redis.client.DefaultClient&password=redis-un-githubbed-password
如何安装
$ pip install dj-environ
如何使用
>>>importenviron>>>env=environ.Env(DEBUG=(bool,False),)>>>env('DEBUG')False>>>env('DEBUG',default=True)True>>>open('.myenv','a').write('DEBUG=on')>>>environ.Env.read_env('.myenv')# or env.read_env('.myenv')>>>env('DEBUG')True>>>open('.myenv','a').write('\nINT_VAR=1010')>>>env.int('INT_VAR'),env.str('INT_VAR')1010,'1010'>>>open('.myenv','a').write('\nDATABASE_URL=sqlite:///my-local-sqlite.db')>>>env.read_env('.myenv')>>>env.db(){'ENGINE':'django.db.backends.sqlite3','NAME':'my-local-sqlite.db','HOST':'','USER':'','PASSWORD':'','PORT':''}>>>root=env.path('/home/myproject/')>>>root('static')'/home/myproject/static'
支持的类型
提示
在url中使用不安全字符
DATABASE_URL=mysql://user:%23password@127.0.0.1:3306/dbname
电子邮件设置
EMAIL_CONFIG=env.email_url('EMAIL_URL',default='smtp://user@:password@localhost:25')vars().update(EMAIL_CONFIG)
测试
$ git clone https://github.com/ratson/dj-environ.git
$ cd dj-environ/
$ python setup.py test
推荐PyPI第三方库