# 使用django-constance动态修改配置

1 min read
Table of Contents

一、django-constance配置(没用用redis,参考连接1参考连接2(官方)

settings.py
INSTALLED_APPS = [
'simpleui',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'constance',
'constance.backends.database',
'django_bootstrap5',
'django_apscheduler',
'SomeScheduler',
'changeIP',
'checkIn',
]
# django-constance配置
CONSTANCE_BACKEND = 'constance.backends.database.DatabaseBackend'
from collections import OrderedDict
CONSTANCE_CONFIG = OrderedDict([
('SITE_NAME', ('My Title', 'Website title')),
('SITE_DESCRIPTION', ('', 'Website description')),
('THEME', ('light-blue', 'Website theme')),
])
from SomeScheduler import signals # 试了下貌似把signals的内容直接写在settings下好像不生效。。

二、signals.py设置(signal详细使用方法可以查询:参考连接1参考连接2(刘江)

from django.dispatch import receiver
from constance.signals import config_updated
from constance import config
@receiver(config_updated)
def constance_updated(sender, key, old_value, new_value, **kwargs):
print(sender, key, old_value, new_value)
if key == 'SITE_NAME':
# 写你想要的内容
print("XX已变更")

💬 回复: Jun (2022-07-24)

如果用在了debug上,记得把setting.py里的debug注销掉,这样默认django保存或重启时,debug是关闭的。


Comments