在django应用程序中使用配置url。

dj-config-url的Python项目详细描述


https://secure.travis-ci.org/julianwachholz/dj-config-url.png?branch=master

这个简单的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')}

数据库示例

EngineDjango BackendURL
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}$.

缓存示例

BackendDjango BackendURL
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,
        }
    }
}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如果SQL server执行计划是流式传输数据,那么调用next()时Java ResultSet对象将如何反应?   java为什么水平滚动条永远不会出现在JTable上?   java如何在Android项目中添加SDK模块   绿脚:爪哇。lang.ClassCastException:无法将障碍物投射到球投射物   xslt需要在Java1.4.2中使用SaxonB(版本9.1.0.8)方面的帮助   java Apache HTTP客户端下载SOAP响应的一部分   为Java 9计划的“过滤传入序列化数据”解决了数据反序列化安全漏洞吗?   java如何使用drools对列表中的元素进行分组   java从匿名类到lambda表达式   Java中是否有不可变的单链表实现?   java动态添加按钮以滚动查看安卓   java GAE:无法为模块http请求设置管理员登录凭据   java如何在Hibernate 5 CriteriaBuilder中使用条件条件获取计数   java如何将JSON+HAL响应解析为POJO   java如何获取计算器程序,对两个以上的数字进行加、减、乘、除   java Thymeleaf+静态资源+@ResponseBody