| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 | import osfrom Ansjer.config import BASE_DIRSECRET_KEY = 'c7ki2_gkg4#sjfm-u1%$s#&n#szf01f*v69rwv2qsf#-zmm@tl'DEBUG = True# DEBUG = FalseALLOWED_HOSTS = ['*']INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'corsheaders',    'imagekit',    'Model',]MIDDLEWARE = [    'corsheaders.middleware.CorsMiddleware',    'Service.middleware.StatisticsUrlMiddleware',    'django.middleware.security.SecurityMiddleware',    'django.contrib.sessions.middleware.SessionMiddleware',    'django.middleware.common.CommonMiddleware',    # 'django.middleware.csrf.CsrfViewMiddleware',    'corsheaders.middleware.CorsPostCsrfMiddleware',    'django.contrib.auth.middleware.AuthenticationMiddleware',    'django.contrib.messages.middleware.MessageMiddleware',    'django.middleware.clickjacking.XFrameOptionsMiddleware',    'django.middleware.security.SecurityMiddleware',    'django_global_request.middleware.GlobalRequestMiddleware',]AUTHENTICATION_BACKENDS = (    'django.contrib.auth.backends.ModelBackend',  # django default backend    'guardian.backends.ObjectPermissionBackend',)ADDR_URL = []ANONYMOUS_USER_ID = -1  # 支持匿名用户STATIC_URL = '/static/'# 上传路径根目录MEDIA_ROOT = os.path.join(BASE_DIR, 'static/Upgrate')# 在浏览器上访问该上传文件的url的前缀MEDIA_URL = '/static/Upgrate/'ROOT_URLCONF = 'Ansjer.urls'LOGIN_URL = '/account/login'AUTH_USER_MODEL = 'Model.Device_User'  # 自定义ModelAPPEND_SLASH = FalseTEMPLATES = [    {        'BACKEND': 'django.template.backends.django.DjangoTemplates',        # 'DIRS': [BASE_DIR + '/static/templates', ],        'DIRS': [BASE_DIR + '/templates', ],        'APP_DIRS': True,        'OPTIONS': {            'context_processors': [                'django.template.context_processors.debug',                'django.template.context_processors.request',                'django.contrib.auth.context_processors.auth',                'django.contrib.messages.context_processors.messages',            ],        },    },]WSGI_APPLICATION = 'Ansjer.test_wsgi.application'# 服务器类型DATABASE_DATA = 'AnsjerTest'SERVER_HOST = 'database-2.clraczw4p0yj.us-west-1.rds.amazonaws.com'DATABASES_USER = 'azrds'DATABASES_PASS = 'azrds.x.x'DATABASE_DATA2 = 'AnsjerTest'SERVER_HOST2 = 'ansjerpush.clraczw4p0yj.us-west-1.rds.amazonaws.com'DATABASES_USER2 = 'azrds'DATABASES_PASS2 = 'azrds.x.x'DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql',        'NAME': DATABASE_DATA,        'USER': DATABASES_USER,        'PASSWORD': DATABASES_PASS,        'HOST': SERVER_HOST,        'PORT': '3306',        'OPTIONS': {'charset': 'utf8mb4', 'use_unicode': True, 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"},        'AUTOCOMMIT': True    },    'mysql02': {        'ENGINE': 'django.db.backends.mysql',        'NAME': DATABASE_DATA2,        'USER': DATABASES_USER2,        'PASSWORD': DATABASES_PASS2,        'HOST': SERVER_HOST2,        'PORT': '3306',        'OPTIONS': {'charset': 'utf8mb4', 'use_unicode': True, 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"},        'AUTOCOMMIT': True    }}DATABASE_ROUTERS = ['Ansjer.database_router.DatabaseAppsRouter']DATABASE_APPS_MAPPING = {    'Model': 'default',    'db2': 'mysql02',}AUTH_PASSWORD_VALIDATORS = [    {        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',    },    {        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',    },    {        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',    },    {        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',    },]LANGUAGE_CODE = 'en-us'# TIME_ZONE = 'Asia/Shanghai'TIME_ZONE = 'UTC'USE_I18N = TrueUSE_L10N = TrueUSE_TZ = True# 跨域增加忽略CORS_ALLOW_CREDENTIALS = TrueCORS_ORIGIN_ALLOW_ALL = True# CORS_ORIGIN_WHITELIST = ('*')CORS_ALLOW_METHODS = (    'DELETE',    'GET',    'OPTIONS',    'PATCH',    'POST',    'PUT',    'VIEW',)CORS_ALLOW_HEADERS = (    'XMLHttpRequest',    'X_FILENAME',    'accept',    'accept-encoding',    'authorization',    'content-type',    'dnt',    'origin',    'user-agent',    'x-csrftoken',    'x-requested-with',    'Pragma',)#########################################'''增加错误信息推送到管理员邮箱'''# 管理员邮箱ADMINS = (    ('admin', 'chanjunkai@163.com'),    ('admin', '1379072853@qq.com'),)# 非空链接,却发生404错误,发送通知MANAGERSSEND_BROKEN_LINK_EMAILS = TrueMANAGERS = ADMINS# Email设置EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'EMAIL_HOST = 'smtp.163.com'  # QQ邮箱SMTP服务器(邮箱需要开通SMTP服务)EMAIL_PORT = 25  # QQ邮箱SMTP服务端口EMAIL_HOST_USER = 'chanjunkai@163.com'  # 我的邮箱帐号EMAIL_HOST_PASSWORD = 'cjk1234'  # 授权码EMAIL_SUBJECT_PREFIX = 'website'  # 为邮件标题的前缀,默认是'[django]'EMAIL_USE_TLS = True  # 开启安全链接DEFAULT_FROM_EMAIL = SERVER_EMAIL = EMAIL_HOST_USER  # 设置发件人LOGGING = {    'version': 1,    'disable_existing_loggers': True,    'formatters': {        'error_format': {            # 'format': '{"asctime":"%(asctime)s","thread":"%(threadName)s:%(thread)d","errorline":"%(lineno)d","errorlevel":"%(levelname)s","errorcontent":"%(message)s"}'            'format': '%(asctime)s %(threadName)s %(thread)d %(lineno)d %(levelname)s %(message)s'        },        'standard': {            'format': '[%(asctime)s] [%(filename)s:%(lineno)d] [%(module)s:%(funcName)s] '                      '[%(levelname)s]- %(message)s'},        'simple': {  # 简单格式            'format': '%(levelname)s %(message)s'        },    },    'filters': {    },    'handlers': {        'mail_admins': {            'level': 'ERROR',            'class': 'django.utils.log.AdminEmailHandler',            'include_html': True,        },        'default': {            'level': 'ERROR',            'class': 'logging.handlers.RotatingFileHandler',            'filename': BASE_DIR + '/static/log/error.log',            'maxBytes': 1024 * 1024 * 5,  # 5 MB            'backupCount': 5,            'formatter': 'error_format',        },        'console': {            'level': 'ERROR',            'class': 'logging.StreamHandler',            'formatter': 'error_format'        },# 输出info日志        'info': {            'level': 'INFO',            'class': 'logging.handlers.RotatingFileHandler',            'filename': BASE_DIR + '/static/log/info.log',            'maxBytes': 1024 * 1024 * 5,            'backupCount': 5,            'formatter': 'standard',            'encoding': 'utf-8',  # 设置默认编码        },    },    'loggers': {        'django': {            'handlers': ['default', 'console'],            # 'handlers': ['mail_admins','default','console'],            # 'level': 'ERROR',            'level': 'ERROR',            'propagate': False        },        # log 调用时需要当作参数传入        'log': {            'handlers': ['info', 'console', 'default'],            'level': 'INFO',            'propagate': True        },        # 'django.db.backends': {        #     'handlers': ['console'],        #     'propagate': True,        #     'level': 'DEBUG',        # },    }}
 |