Django settings 描述
阿新 • • 發佈:2020-10-21
""" Django settings for log_collect_statistics project. Generated by 'django-admin startproject' using Django 2.1.15. For more information on this file, see https://docs.djangoproject.com/en/2.1/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/2.1/ref/settings/ """ import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = '--1k(694cyc_6s7r=7!hp25km_2*hp^j$b&hm(3%+ydq68_se4' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = False # 允許所有域名訪問 ALLOWED_HOSTS = ["*"] # Application definition # App列表 INSTALLED_APPS = [ 'django.contrib.admin', # 內建後臺管理系統 'django.contrib.auth', # 內建使用者認證系統 'django.contrib.contenttypes', # 記錄專案中所有的model元陣列(Django 的 ORM框架) 'django.contrib.sessions', # session會話功能, 用於標識當前訪問網站使用者身份,記錄像相關使用者資訊 'django.contrib.messages', # 訊息提示功能 'django.contrib.staticfiles', # 查詢靜態資源路徑 'app.apps.AppConfig', 'user.apps.UserConfig', ] # 中介軟體 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', # 內建的安全機制,保護使用者與網站的通訊安全 'django.contrib.sessions.middleware.SessionMiddleware', # 會話session功能 'django.middleware.locale.LocaleMiddleware', # 使用中文 'django.middleware.common.CommonMiddleware', # 處理請求資訊,規範化請求內容 'django.middleware.csrf.CsrfViewMiddleware', # 開啟CSRF防護功能 'django.contrib.auth.middleware.AuthenticationMiddleware', # 開啟內建的使用者認證系統 'django.contrib.messages.middleware.MessageMiddleware', # 開啟內建的資訊提示功能 'django.middleware.clickjacking.XFrameOptionsMiddleware', # 防止惡意程式點選劫持 'log_collect_statistics.middlewares.cors.Mymiddle', 'log_collect_statistics.middlewares.ExceptionLoggingMiddleware.ExceptionLoggingMiddleware', ] ROOT_URLCONF = 'log_collect_statistics.urls' # 模板配置 TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', # 定義模板引擎,用於識別模板裡面的變數和指令 'DIRS': [os.path.join(BASE_DIR, 'templates'), ], # 設定模板所在路徑 'APP_DIRS': True, # 是否在APP裡面查詢模板檔案 'OPTIONS': { # 用於填充在RequestContext中上下文的呼叫函式,一般情況不做任何修改 '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 = 'log_collect_statistics.wsgi.application' # Database # https://docs.djangoproject.com/en/2.1/ref/settings/#databases # 資料庫配置 if DEBUG: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 連結資料庫的型別 'NAME': 'log_collect', # 連結資料庫的名字 'HOST': '192.168.10.5', # 資料庫主機地址 'PORT': 3306, # 資料庫埠 'USER': 'wzy', # 資料庫使用者名稱 'PASSWORD': 'root1234', # 資料庫密碼 }, 'my_sqlite3': { 'ENGINE': 'django.db.backends.sqlite3', # 連結資料庫的型別 'NAME': os.path.join(BASE_DIR, 'sqlite3'), # 連結資料庫的名字 } } # Password validation # https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators 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', }, ] # Internationalization # https://docs.djangoproject.com/en/2.1/topics/i18n/ LANGUAGE_CODE = 'en-us' # 時區配置 # TIME_ZONE = 'UTC' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_L10N = True USE_TZ = True # 配置自定義用表 MyUser AUTH_USER_MODEL = 'user.MyUser' # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/2.1/howto/static-files/ # 預設靜態檔案在app的static目錄下 是app列表中django.contrib.staticfiles實現的 STATIC_URL = '/static/' # 在伺服器上部署,實現伺服器和專案之間的對映,主要是收集整個專案的靜態資源,並存放在一個新的資料夾,然後由該檔案與伺服器之間構建對映關係 # 主要用於專案部署 # STATIC_ROOT = os.path.join(BASE_DIR, 'all_static'), # 將靜態檔案配置在系統根目錄下 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ] # rabbitMq 的配置資訊 if DEBUG: RABBIT_HOST = '192.168.10.10' QUEUE_TOPIC = 'logs' RABBIT_USERNAME = 'wzy' RABBIT_PASSWORD = 'root1234' else: RABBIT_HOST = '192.168.10.10' QUEUE_TOPIC = 'logs' RABBIT_USERNAME = 'wzy' RABBIT_PASSWORD = 'root1234' LOG_ROOT = os.path.join(BASE_DIR, 'logs') + os.sep # 日誌儲存路徑 if DEBUG: # 日誌記錄 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'standard': { 'format': '%(asctime)s [%(name)s:%(lineno)d][%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'}, }, 'handlers': { 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', }, 'file': { 'level': 'DEBUG', 'class': 'logging.handlers.RotatingFileHandler', 'filename': LOG_ROOT + 'all.log', 'maxBytes': 1024*1024*5, # 檔案大小 'backupCount': 10, # 備份份數 'formatter': 'standard', }, 'info': { 'level': 'INFO', 'class': 'logging.handlers.RotatingFileHandler', 'filename': LOG_ROOT + 'info.log', 'maxBytes': 1024*1024*5, # 檔案大小 'backupCount': 10, # 備份份數 'formatter': 'standard', }, 'error': { 'level': 'WARNING', 'class': 'logging.handlers.RotatingFileHandler', 'filename': LOG_ROOT + 'error.log', 'maxBytes': 1024*1024*5, # 檔案大小 'backupCount': 10, # 備份份數 'formatter': 'standard', }, }, # 字別的模組中使用使用 import logging logger = logging.getLogger('django') getLogger 中的變數為 以下配置中內容 'loggers': { 'django': { 'handlers': ['file', 'console'], 'propagate': True, }, 'inf': { 'handlers': ['info', 'console'], 'level': 'INFO', 'propagate': True, }, 'err': { 'handlers': ['error', 'console'], 'level': 'WARNING', 'propagate': True, }, # 檢視資料庫執行程式碼 'django.db.backends': { 'handlers': ['console', ], 'propagate': True, 'level': 'DEBUG', }, }, } else: # 日誌記錄 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'standard': { 'format': '%(asctime)s [%(name)s:%(lineno)d][%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'}, }, 'handlers': { 'console': { 'level': 'INFO', # DEBUG 'class': 'logging.StreamHandler', }, 'file': { 'level': 'INFO', # DEBUG 'class': 'logging.handlers.RotatingFileHandler', 'filename': LOG_ROOT + 'all.log', 'maxBytes': 1024 * 1024 * 5, # 檔案大小 'backupCount': 10, # 備份份數 'formatter': 'standard', }, 'info': { 'level': 'INFO', 'class': 'logging.handlers.RotatingFileHandler', 'filename': LOG_ROOT + 'info.log', 'maxBytes': 1024 * 1024 * 5, # 檔案大小 'backupCount': 10, # 備份份數 'formatter': 'standard', }, 'error': { 'level': 'WARNING', 'class': 'logging.handlers.RotatingFileHandler', 'filename': LOG_ROOT + 'error.log', 'maxBytes': 1024 * 1024 * 5, # 檔案大小 'backupCount': 10, # 備份份數 'formatter': 'standard', }, }, # 字別的模組中使用使用 import logging logger = logging.getLogger('django') getLogger 中的變數為 以下配置中內容 'loggers': { 'django': { 'handlers': ['file', 'console'], 'propagate': True, }, 'inf': { 'handlers': ['info', 'console'], 'level': 'INFO', 'propagate': True, }, 'err': { 'handlers': ['error', 'console'], 'level': 'WARNING', 'propagate': True, }, # 檢視資料庫執行程式碼 'django.db.backends': { 'handlers': ['console', ], 'propagate': True, 'level': 'DEBUG', }, }, }