django environ docker允许您利用12个受因子启发的环境变量来配置具有docker机密的django应用程序。
django-environ-docker的Python项目详细描述
django environ允许您利用受12个因素启发的环境变量来配置django应用程序。
此模块合并了:
灵感来源:
这是安装django environ之前的settings.py文件
之后: 您还可以将read_env()显式路径传递给.env文件。 创建一个.env文件: 只有两个类,environ.Env和environ.Path 有关与django项目一起使用的具体示例,请参见cookiecutter-django。 为了使用不安全的字符,在设置到.env文件之前,必须使用urllib.parse.encode编码。 参考https://perishablepress.com/stop-using-unsafe-characters-in-urls/。 为了设置django的电子邮件配置,您可以使用以下代码: sqlite连接到基于文件的数据库。使用相同的url格式,省略主机名,
并使用“文件”部分作为数据库的文件名。
这有四个斜杠的效果
文件路径:sqlite:///full/path/to/your/database/file.sqlite。 django environ是在mit许可下获得许可的-有关详细信息,请参见LICENSE_FILE文件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 django-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)
sqlite网址
测试
$ git clone git@github.com:joke2k/django-environ.git
$ cd django-environ/
$ python setup.py test
许可证
更改日志
0.4.2 - 13-April-2017
0.4.1 - 13-November-2016
0.4.0 - 23-September-2015
0.3 - 03-June-2014
0.2.1 2013年4月19日
0.2 2013年4月16日
0.1 2013年4月2日
学分
推荐PyPI第三方库