一个简单的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 Android编程存储的图像在PC上的格式无效   安卓无法通过Java代码使按钮变宽   java在Spring事务中的行为差异需要新的和嵌套的传播   java如何在Ubuntu上构建javafuse?   java不支持Eclipse包包含javac。exe   读取大文件时java StAX解析器的xml问题   连接到mysql时java通信链路故障   java WebSphere web容器线程的最大线程状态为runnable   为什么我需要添加双引号来打印java中字符数组的第一个和最后一个元素   java Hibernate在更新现有父实体时不创建新的子实体   java创建JSON格式输出   java SonarQube与Eclipse   无法从静态上下文引用java非静态方法toString   java位集向后显示值?   java为什么maven不从TestClass生成源代码?   java在实践中,在catch块中抛出异常是否有用?   java如何通过FileinputStream添加还原设置功能   java复制记事本中的所有内容并粘贴到网页的文本区域