在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第三方库


热门话题
如何加载。java文件到编译器?   java写入文件和I/O   java日历返回错误的当前日期安卓   if语句if变量等于1(java)   java很难让Joda有时间使用我的bukkit插件   json如何创建基于java的应用程序,该应用程序将从网站获取输入   java如何在多页中打印大型JPanel   java my spinner在添加从firebase数据库中选择的多个值时被覆盖   java用Play框架覆盖HTTP方法   试图获取所有用户时,java错误请求400。Dto和表格   java支持bean加载图像后javascript自动调用JS函数   java在MTOM的@StreamingAttachment(Metro)中,Parsely的意思是什么   具有可抢占线程队列的多线程java执行器   Java Opencv connectedComponentsWithStats   java如何向数组中添加2D数组的数目   eclipse为什么我的Java Zork克隆不能正确循环?   java在哪里放置定制的第二个web。xml   java如何更改最近应用列表中显示的快照?   java Browser#getText()返回空字符串