一个简单的django应用程序,用django管理员编辑配置变量。
django-admin-conf-vars的Python项目详细描述
djangodjango_admin_conf_vars应用程序允许您使用django admin为项目设置配置变量
#安装
从pip安装
$ pip install django-admin-conf-vars
将django_admin_conf_vars添加到已安装的应用程序中
迁移以创建数据库:
$ python manage.py migrate
别担心这些警告,它们只是第一次出现。(因为下一个配置尚未就绪)
根据需要创建一个名为python的模块。例如:“my_var_settings_file.py”并将其放入您的项目中。例如:my/path/package/my_var_settings_file.py。在该文件中定义变量:
# -*- coding:utf-8 -*- from django_admin_conf_vars.global_vars import config config.set("MY_TIME_VAR", default=60) config.set("MY_OTHER_VAR", default="/some/path", editable=False) ...
请确保已迁移并在此时创建数据库。见How to use
添加到您的设置中。py新模块的路径:
VARS_MODULE_PATH = 'my_package.my_var_settings_file'
变量vars_module_path必须具有新文件的名称(点4)。一定要把它放入现有的Python包中。
准备好了!现在您有了django administration的配置变量。 只需在视图、模型或任何python模块中使用它。见How to use
##从旧版本升级
如果您安装了以前的版本,则需要再次迁移,但首先必须在settings.py\vars_module_path='my_package.my_var_settings_file'中注释该行。
- 在您的设置中注释变量模块路径。
- 通过pip$pip install升级-升级django_admin_conf_vars。
- 迁移$python manage.py migrate
- 取消注释vars_module_path
- 运行服务器
##家属
- django>;=1.7
#工作原理
<> > > django-Admin,CopyVAvs< /CIT> >使用单体设计模式来保证只存在配置变量的一个实例,并且当导入django_admin_conf_vars在每次导入数据库时都不会使用它,它只在两种情况下连接到数据库:
- 每次重新启动服务器时。
- 每次你在管理员中修改一个变量。
django_admin_conf_vars允许您在代码中定义全局变量,也允许使用django admin编辑它们。如果使用admin修改变量,则这将始终保留数据库的值,并且永远不会重写代码中的值。如果要在代码中使用该值,可以在“管理”中对其进行编辑并复制该值:)
#正常设置变量和django_admin_conf_vars之间的差异
##正常使用:
设置中的变量。py:
MY_TIME_VAR = 60 MY_OTHER_VAR = "/some/path"
在视图中使用vars.py:
from django.conf import settings def my_view(request): ... a = settings.MY_TIME_VAR b = settings.MY_OTHER_VAR ...
结论:您的设置中写入了静态变量。py
但是…如果你想在生产中编辑这些变量会怎么样?您需要编辑设置并重新加载服务器。(__)…!!!
##django_admin_conf_vars用法:
编写变量并像正常使用一样使用它们。
我的变量设置文件中的变量。py:
# -*- coding:utf-8 -*- from django_admin_conf_vars.global_vars import config config.set("MY_TIME_VAR", default=60) config.set("MY_OTHER_VAR", default="/some/path") ...
在视图中使用变量。py:
from django_admin_conf_vars.global_vars import config def my_view(request): ... a = config.MY_TIME_VAR b = config.MY_OTHER_VAR ...
很简单!现在您可以使用django admin编辑这些变量