跳转到主要内容

Django设置组织助手。

项目描述

Jazzband Build Status Test coverage status Documentation status Supported Python versions Supported Django versions

django-configurations通过利用Python类的组合性,简化了Django项目的配置。它通过引入成熟的面向对象编程模式,扩展了Django基于模块的设置加载概念。

请参阅文档以获取更完整的示例。

快速入门

安装django-configurations

$ python -m pip install django-configurations

或者,如果您想使用基于URL的值

$ python -m pip install django-configurations[cache,database,email,search]

然后在项目的settings.py或其他任何用于存储设置常量的模块中,子类化包含的configurations.Configuration类,例如:

# mysite/settings.py

from configurations import Configuration

class Dev(Configuration):
    DEBUG = True

将环境变量DJANGO_CONFIGURATION设置为刚刚创建的类的名称,例如在bash中

$ export DJANGO_CONFIGURATION=Dev

并将环境变量DJANGO_SETTINGS_MODULE设置为模块导入路径,如往常一样,例如在bash中

$ export DJANGO_SETTINGS_MODULE=mysite.settings

或者在使用Django管理命令时,例如Django默认的--settings命令行选项,提供--configuration选项。

$ python -m manage runserver --settings=mysite.settings --configuration=Dev

为了使Django能够使用您的配置,您现在必须修改您的manage.pywsgi.pyasgi.py脚本来使用django-configurations提供的适当启动函数版本,例如,使用django-configurations的典型manage.py可能如下所示:

#!/usr/bin/env python

import os
import sys

if __name__ == "__main__":
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
    os.environ.setdefault('DJANGO_CONFIGURATION', 'Dev')

    from configurations.management import execute_from_command_line

    execute_from_command_line(sys.argv)

注意在第10行,我们没有使用常见的工具django.core.management.execute_from_command_line,而是使用configurations.management.execute_from_command_line

同样适用于您的wsgi.py文件,例如:

import os

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
os.environ.setdefault('DJANGO_CONFIGURATION', 'Dev')

from configurations.wsgi import get_wsgi_application

application = get_wsgi_application()

在这里,我们没有使用默认的django.core.wsgi.get_wsgi_application函数,而是使用configurations.wsgi.get_wsgi_application

如果您不是通过WSGI而是通过ASGI来服务您的应用程序,您还需要修改您的asgi.py文件。

import os

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
os.environ.setdefault('DJANGO_CONFIGURATION', 'DEV')

from configurations.asgi import get_asgi_application

application = get_asgi_application()

就这样!现在您可以使用manage.py和您喜欢的WSGI/ASGI服务器来使用您的项目。

项目详情


下载文件

下载适用于您的平台文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分发

django-configurations-2.5.1.tar.gz (43.2 kB 查看散列)

上传时间:

构建分发

django_configurations-2.5.1-py3-none-any.whl (17.4 kB 查看散列)

上传时间: Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面