一个简单的django应用程序,用django管理员编辑配置变量。

django-admin-conf-vars的Python项目详细描述


djangodjango_admin_conf_vars应用程序允许您使用django admin为项目设置配置变量

#安装

  1. pip安装

    $ pip install django-admin-conf-vars
    
  2. 将django_admin_conf_vars添加到已安装的应用程序中

  3. 迁移以创建数据库:

    $ python manage.py migrate
    

别担心这些警告,它们只是第一次出现。(因为下一个配置尚未就绪)

  1. 根据需要创建一个名为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

  1. 添加到您的设置中。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'中注释该行。

  1. 在您的设置中注释变量模块路径。
  2. 通过pip$pip install升级-升级django_admin_conf_vars
  3. 迁移$python manage.py migrate
  4. 取消注释vars_module_path
  5. 运行服务器

##家属

  • django>;=1.7

#工作原理

<> > > django-Admin,CopyVAvs< /CIT> >使用单体设计模式来保证只存在配置变量的一个实例,并且当导入 CONFIG变量时,总是有单个变量中的全局变量,其中变量包含其属性。见global_vars.py

django_admin_conf_vars在每次导入数据库时都不会使用它,它只在两种情况下连接到数据库:

  1. 每次重新启动服务器时。
  2. 每次你在管理员中修改一个变量。

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编辑这些变量

#作者和贡献者

请随意发送一个pull request来制作一个更好的软件,我等你。

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

推荐PyPI第三方库


热门话题
java如何在表被注释到配置之前获取表的元数据?   java滚动条不会出现在JList上   java JOGL监视器GPU内存   java为什么要使用RecyclerView onDraw延迟   java定制Oppo Reno 2 Z CPH1951(手机型号)的固件(闪存文件)   java自定义线程池执行器   java如何解决发布版本中重复的jar条目[com/安卓/volley/R.class]?   java如何使用Bukkit API触发事件?   java在blazemeter jmeter RTE插件中使用ctrl+w输入   C#/Visual Studio的java JDT等价物   java为什么当maxread值很大而收到的消息数量很小时,卡夫卡消费者会无限期消费?   java游戏2。x:包含模板列表的绑定模型   带压缩的java日志旋转   运行时。exec用java运行程序读取它正在做什么