在django应用程序中使用配置url。
dj-config-url的Python项目详细描述
这个简单的django实用程序允许您利用 12factor灵感 用于配置django应用程序的环境变量。
这个项目是从kennethreitz'dj数据库url派生的,并且是完全的 与之兼容,因此您可以使用此实用程序作为替换项。
支持的配置
当前数据库引擎支持:PostgreSQL, postgis、mysql、mysql(gis)和sqlite。
您还可以为支持的后端配置CACHES配置 Django核心:数据库、虚拟、基于文件、本地内存以及两者 memcached后端。
安装
安装很简单:
$ pip install dj-config-url
用法
在DATABASE_URL中的settings.py中配置数据库:
DATABASES = {'default': dj_config_url.config()}
解析任意数据库url:
DATABASES = {'default': dj_config_url.parse('postgres://...')}
配置缓存后端:
CACHES = {'default': dj_config_url.parse('memcache://...')}
使用自定义缓存后端类:
CACHES = {'default': dj_config_url.parse('memcache://127.0.0.1:123?password=s3cr3t', 'redis_cache.cache.RedisCache')}
数据库示例
Engine | Django Backend | URL |
---|---|---|
PostgreSQL | ^{tt4}$ | ^{tt5}$ |
PostGIS | ^{tt6}$ | ^{tt7}$ |
MySQL | ^{tt8}$ | ^{tt9}$ |
MySQL (GIS) | ^{tt10}$ | ^{tt11}$ |
SQLite | ^{tt12}$ | ^{tt13}$ [1] |
[1] | SQLite connects to file based databases. The same URL format is used, omitting the hostname, and using the “file” portion as the filename of the database. This has the effect of four slashes being present for an absolute file path: ^{tt14}$. |
缓存示例
Backend | Django Backend | URL |
---|---|---|
Database | ^{tt15}$ | ^{tt16}$ |
Dummy | ^{tt17}$ | ^{tt18}$ |
File based | ^{tt19}$ | ^{tt20}$ |
Local Memory | ^{tt21}$ | ^{tt22}$ |
Memcached | ^{tt23}$ | ^{tt24}$ |
PyLibMC | ^{tt25}$ | ^{tt26}$ |
您可以将缓存后端的选项指定为url中的查询参数,例如:
CACHES = { 'default': dj_config_url.parse('filecache:///var/tmp/django_cache?timeout=60&max_entries=1000&cull_frequency=2'), }
这相当于在settings.py:
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', 'LOCATION': '/var/tmp/django_cache', 'TIMEOUT': 60, 'OPTIONS': { 'MAX_ENTRIES': 1000, 'CULL_FREQUENCY': 2, } } }