feat: base 调整项目可自定义配置精简settings.py
This commit is contained in:
parent
077707f493
commit
06bd6a7544
|
@ -14,7 +14,7 @@ from datetime import datetime, timedelta
|
||||||
import os
|
import os
|
||||||
import json
|
import json
|
||||||
import sys
|
import sys
|
||||||
from . import conf
|
from .conf import *
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
||||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
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
|
# Quick-start development settings - unsuitable for production
|
||||||
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
|
# 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!
|
# 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!
|
# SECURITY WARNING: don't run with debug turned on in production!
|
||||||
DEBUG = conf.DEBUG
|
|
||||||
|
|
||||||
ALLOWED_HOSTS = ['*']
|
ALLOWED_HOSTS = ['*']
|
||||||
|
|
||||||
|
@ -89,7 +52,6 @@ INSTALLED_APPS = [
|
||||||
'drf_yasg',
|
'drf_yasg',
|
||||||
'rest_framework',
|
'rest_framework',
|
||||||
'django_filters',
|
'django_filters',
|
||||||
# 'django_q',
|
|
||||||
'apps.develop',
|
'apps.develop',
|
||||||
'apps.utils',
|
'apps.utils',
|
||||||
'apps.third',
|
'apps.third',
|
||||||
|
@ -163,7 +125,7 @@ CHANNEL_LAYERS = {
|
||||||
|
|
||||||
# Database
|
# Database
|
||||||
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases
|
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases
|
||||||
DATABASES = conf.DATABASES
|
|
||||||
|
|
||||||
# Password validation
|
# Password validation
|
||||||
# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators
|
# 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)
|
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'
|
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
||||||
# 雪花ID生成配置
|
|
||||||
SNOW_DATACENTER_ID = conf.SNOW_DATACENTER_ID
|
|
||||||
|
|
||||||
# restframework配置
|
# restframework配置
|
||||||
REST_FRAMEWORK = {
|
REST_FRAMEWORK = {
|
||||||
|
@ -279,20 +233,8 @@ AUTHENTICATION_BACKENDS = (
|
||||||
'apps.auth1.authentication.CustomBackend',
|
'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配置,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个任务就会被销毁,可防止内存泄露
|
CELERYD_MAX_TASKS_PER_CHILD = 100 # 每个worker最多执行100个任务就会被销毁,可防止内存泄露
|
||||||
CELERY_TIMEZONE = 'Asia/Shanghai' # 设置时区
|
CELERY_TIMEZONE = 'Asia/Shanghai' # 设置时区
|
||||||
CELERY_ENABLE_UTC = True # 启动时区设置
|
CELERY_ENABLE_UTC = True # 启动时区设置
|
||||||
|
@ -305,19 +247,6 @@ CELERY_RESULT_EXTENDED = True
|
||||||
CELERY_TASK_TRACK_STARTED = True
|
CELERY_TASK_TRACK_STARTED = True
|
||||||
CELERYD_SOFT_TIME_LIMIT = 60*10
|
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配置
|
||||||
SWAGGER_SETTINGS = {
|
SWAGGER_SETTINGS = {
|
||||||
|
@ -407,61 +336,36 @@ LOGGING = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# 项目
|
##### 加载客户可自定义配置并提供操作方法 #####
|
||||||
BASE_URL = conf.BASE_URL
|
SYS_JSON_PATH = os.path.join(BASE_DIR, 'server/conf.json')
|
||||||
BASE_URL_IN = conf.BASE_URL_IN
|
|
||||||
BASE_URL_OUT = conf.BASE_URL_OUT
|
|
||||||
|
|
||||||
# 大华ICC平台
|
def get_sysconfig(reload=False):
|
||||||
DAHUA_ENABLED = conf.DAHUA_ENABLED
|
config = cache.get('system_config', None)
|
||||||
DAHUA_BASE_URL = conf.DAHUA_BASE_URL
|
if config is None or reload:
|
||||||
DAHUA_HOST = conf.DAHUA_BASE_URL.replace('https://', '').replace('http://', '')
|
# 读取配置文件
|
||||||
DAHUA_USERNAME = conf.DAHUA_USERNAME
|
if not os.path.exists(SYS_JSON_PATH):
|
||||||
DAHUA_PASSWORD = conf.DAHUA_PASSWORD
|
raise SystemError('未找到配置文件')
|
||||||
DAHUA_CLIENTID = conf.DAHUA_CLIENTID
|
with open(SYS_JSON_PATH, 'r', encoding='utf-8') as f:
|
||||||
DAHUA_SECRET = conf.DAHUA_SECRET
|
config = json.loads(f.read())
|
||||||
DAHUA_FACEGROUPID_1 = conf.DAHUA_FACEGROUPID_1
|
cache.set('system_config', config)
|
||||||
DAHUA_SUBSCRIBE = conf.DAHUA_SUBSCRIBE
|
return config
|
||||||
DAHUA_IVSS_CODE = conf.DAHUA_IVSS_CODE
|
return config
|
||||||
|
|
||||||
# 寻息定位
|
|
||||||
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 update_dict(dict1, dict2):
|
||||||
SP_ENABLED = conf.SP_ENABLED
|
for key, value in dict2.items():
|
||||||
SP_BASE_URL = conf.SP_BASE_URL
|
if key == 'apk_file': # apk_file拷贝到固定位置
|
||||||
SP_USERNAME = conf.SP_USERNAME
|
from shutil import copyfile
|
||||||
SP_PASSWORD = conf.SP_PASSWORD
|
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)
|
||||||
SD_PWD = conf.SD_PWD
|
else:
|
||||||
BACKUP_PATH = conf.BACKUP_PATH
|
dict1[key] = value
|
||||||
SH_PATH = conf.SH_PATH
|
|
||||||
|
|
||||||
|
|
||||||
# 百度语音
|
def update_sysconfig(new_dict):
|
||||||
BD_SP_ID = conf.BD_SP_ID
|
config = get_sysconfig()
|
||||||
BD_SP_KEY = conf.BD_SP_KEY
|
update_dict(config, new_dict)
|
||||||
BD_SP_SECRET = conf.BD_SP_SECRET
|
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)
|
||||||
# 算法层
|
|
||||||
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
|
|
Loading…
Reference in New Issue