diff --git a/server/settings.py b/server/settings.py index a53b45f6..6d1097bf 100755 --- a/server/settings.py +++ b/server/settings.py @@ -14,7 +14,7 @@ from datetime import datetime, timedelta import os import json import sys -from . import conf +from .conf import * from django.core.cache import cache # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -23,49 +23,12 @@ sys.path.insert(0, os.path.join(BASE_DIR, 'apps')) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ -SYS_JSON_PATH = os.path.join(BASE_DIR, 'server/conf.json') - - -def get_sysconfig(reload=False): - config = cache.get('system_config', None) - if config is None or reload: - # 读取配置文件 - if not os.path.exists(SYS_JSON_PATH): - raise SystemError('未找到配置文件') - with open(SYS_JSON_PATH, 'r', encoding='utf-8') as f: - config = json.loads(f.read()) - cache.set('system_config', config) - return config - return config - - -def update_dict(dict1, dict2): - for key, value in dict2.items(): - if key == 'apk_file': # apk_file拷贝到固定位置 - from shutil import copyfile - copyfile(BASE_DIR + value, BASE_DIR + '/media/zc_ehs.apk') - if key in dict1 and isinstance(dict1[key], dict) and isinstance(value, dict): - update_dict(dict1[key], value) - else: - dict1[key] = value - - -def update_sysconfig(new_dict): - config = get_sysconfig() - update_dict(config, new_dict) - with open(SYS_JSON_PATH, 'wb') as f: - f.write(json.dumps(config, indent=4, ensure_ascii=False).encode('utf-8')) - cache.set('system_config', config) - -# 重启时需要reload 不能这样操作, 会使缓存有问题,我也不知道为什么 -# get_sysconfig(reload=True) - # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = conf.SECRET_KEY + # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = conf.DEBUG + ALLOWED_HOSTS = ['*'] @@ -89,7 +52,6 @@ INSTALLED_APPS = [ 'drf_yasg', 'rest_framework', 'django_filters', - # 'django_q', 'apps.develop', 'apps.utils', 'apps.third', @@ -163,7 +125,7 @@ CHANNEL_LAYERS = { # Database # https://docs.djangoproject.com/en/3.0/ref/settings/#databases -DATABASES = conf.DATABASES + # Password validation # https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators @@ -217,17 +179,9 @@ if not os.path.exists(FACE_PATH): os.makedirs(FACE_PATH) -# 邮箱配置 -EMAIL_HOST = conf.EMAIL_HOST -EMAIL_PORT = conf.EMAIL_PORT -EMAIL_HOST_USER = conf.EMAIL_HOST_USER -EMAIL_HOST_PASSWORD = conf.EMAIL_HOST_PASSWORD -EMAIL_USE_TLS = conf.EMAIL_USE_TLS - # 默认主键 DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' -# 雪花ID生成配置 -SNOW_DATACENTER_ID = conf.SNOW_DATACENTER_ID + # restframework配置 REST_FRAMEWORK = { @@ -279,20 +233,8 @@ AUTHENTICATION_BACKENDS = ( 'apps.auth1.authentication.CustomBackend', ) -# 缓存配置,有需要可更改为redis -CACHES = { - "default": { - "BACKEND": "django_redis.cache.RedisCache", - "LOCATION": conf.CACHE_LOCATION, - "OPTIONS": { - "CLIENT_CLASS": "django_redis.client.DefaultClient", - } - } -} # celery配置,celery正常运行必须安装redis -CELERY_BROKER_URL = conf.CELERY_BROKER_URL # 任务存储 -CELERY_TASK_DEFAULT_QUEUE = conf.CELERY_TASK_DEFAULT_QUEUE # 任务队列 CELERYD_MAX_TASKS_PER_CHILD = 100 # 每个worker最多执行100个任务就会被销毁,可防止内存泄露 CELERY_TIMEZONE = 'Asia/Shanghai' # 设置时区 CELERY_ENABLE_UTC = True # 启动时区设置 @@ -305,19 +247,6 @@ CELERY_RESULT_EXTENDED = True CELERY_TASK_TRACK_STARTED = True CELERYD_SOFT_TIME_LIMIT = 60*10 -# django_q配置 -# Q_CLUSTER = { -# 'name': 'ehs', -# # 'workers': 8, -# 'recycle': 500, -# 'timeout': 60, -# 'compress': True, -# 'save_limit': 250, -# 'queue_limit': 500, -# 'cpu_affinity': 1, -# 'label': 'Django Q', -# 'orm': 'default' -# } # swagger配置 SWAGGER_SETTINGS = { @@ -407,61 +336,36 @@ LOGGING = { } } -# 项目 -BASE_URL = conf.BASE_URL -BASE_URL_IN = conf.BASE_URL_IN -BASE_URL_OUT = conf.BASE_URL_OUT +##### 加载客户可自定义配置并提供操作方法 ##### +SYS_JSON_PATH = os.path.join(BASE_DIR, 'server/conf.json') -# 大华ICC平台 -DAHUA_ENABLED = conf.DAHUA_ENABLED -DAHUA_BASE_URL = conf.DAHUA_BASE_URL -DAHUA_HOST = conf.DAHUA_BASE_URL.replace('https://', '').replace('http://', '') -DAHUA_USERNAME = conf.DAHUA_USERNAME -DAHUA_PASSWORD = conf.DAHUA_PASSWORD -DAHUA_CLIENTID = conf.DAHUA_CLIENTID -DAHUA_SECRET = conf.DAHUA_SECRET -DAHUA_FACEGROUPID_1 = conf.DAHUA_FACEGROUPID_1 -DAHUA_SUBSCRIBE = conf.DAHUA_SUBSCRIBE -DAHUA_IVSS_CODE = conf.DAHUA_IVSS_CODE - -# 寻息定位 -XX_ENABLED = conf.XX_ENABLED -XX_BASE_URL = conf.XX_BASE_URL -XX_MQ_HOST = conf.XX_MQ_HOST -XX_MQ_PORT = conf.XX_MQ_PORT -XX_LICENCE = conf.XX_LICENCE -XX_USERNAME = conf.XX_USERNAME -XX_BUILDID = conf.XX_BUILDID -XX_QUEUE = conf.XX_QUEUE +def get_sysconfig(reload=False): + config = cache.get('system_config', None) + if config is None or reload: + # 读取配置文件 + if not os.path.exists(SYS_JSON_PATH): + raise SystemError('未找到配置文件') + with open(SYS_JSON_PATH, 'r', encoding='utf-8') as f: + config = json.loads(f.read()) + cache.set('system_config', config) + return config + return config -# 喇叭配置 -SP_ENABLED = conf.SP_ENABLED -SP_BASE_URL = conf.SP_BASE_URL -SP_USERNAME = conf.SP_USERNAME -SP_PASSWORD = conf.SP_PASSWORD - -# 运维相关 -SD_PWD = conf.SD_PWD -BACKUP_PATH = conf.BACKUP_PATH -SH_PATH = conf.SH_PATH +def update_dict(dict1, dict2): + for key, value in dict2.items(): + if key == 'apk_file': # apk_file拷贝到固定位置 + from shutil import copyfile + copyfile(BASE_DIR + value, BASE_DIR + '/media/zc_ehs.apk') + if key in dict1 and isinstance(dict1[key], dict) and isinstance(value, dict): + update_dict(dict1[key], value) + else: + dict1[key] = value -# 百度语音 -BD_SP_ID = conf.BD_SP_ID -BD_SP_KEY = conf.BD_SP_KEY -BD_SP_SECRET = conf.BD_SP_SECRET - - -# 算法层 -AI_IP = conf.AI_IP - - -# 微信有关 -WXMP_ENABLED = conf.WXMP_ENABLED -WXMP_APPID = conf.WXMP_APPID -WXMP_APPSECRET = conf.WXMP_APPSECRET - -WX_ENABLED = conf.WX_ENABLED -WX_APPID = conf.WX_APPID -WX_APPSECRET = conf.WX_APPSECRET +def update_sysconfig(new_dict): + config = get_sysconfig() + update_dict(config, new_dict) + with open(SYS_JSON_PATH, 'wb') as f: + f.write(json.dumps(config, indent=4, ensure_ascii=False).encode('utf-8')) + cache.set('system_config', config) \ No newline at end of file