• 欢迎访问伊栖物联网社区,聚焦物联网技术和解决方案QQ群:735553309
  • ,从传感器到片上嵌入式系统,无线接入,边缘计算,在这里您可以讨论一切
  • 参加最新的物联网研讨会报名
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏伊栖Eccee

在Djanog中配置利用数据库配置站点全局参数

软件和平台 peyoot 2年前 (2022-09-26) 629次浏览 0个评论

通常一个物联网站站包含许多固定的信息,比如网站名称,第三方工具的访问密钥等。虽然可以把站点的全局参数写在settings.py中,但是这不利于可视化的维护的修改。如果采用数据库的方式,就要确保只有一条记录有效,并且不允许添加更多的记录。这里介绍一种在Django中实现数据库中保存站点参数的方法。

1.安装和启用
只需要增加一个包:

pip install django-solo

然后在settings.py中的INSTALLED_APPS添加solo或solo.apps.SoloAppConfig

2. 定义站点数据库

# models.py

from django.db import models
from solo.models import SingletonModel


class SiteConfiguration(SingletonModel):
    site_name = models.CharField(max_length=255, default='Site Name')
    maintenance_mode = models.BooleanField(default=False)

    def __str__(self):
        return "Site Configuration"

    class Meta:
        verbose_name = "Site Configuration"

3. 注册到后台

# admin.py

from django.contrib import admin
from solo.admin import SingletonModelAdmin
from config.models import SiteConfiguration


admin.site.register(SiteConfiguration, SingletonModelAdmin)

这样就可以用了

4. 补充
如果要在其它地方引用,可以参考如下:

# There is only one item in the table, you can get it this way:
from .models import SiteConfiguration
config = SiteConfiguration.objects.get()

# get_solo will create the item if it does not already exist
config = SiteConfiguration.get_solo()

ECCEE版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:在Djanog中配置利用数据库配置站点全局参数
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址