|
@@ -0,0 +1,229 @@
|
|
|
+# coding=utf-8
|
|
|
+"""
|
|
|
+Django settings for net_car project.
|
|
|
+
|
|
|
+Generated by 'django-admin startproject' using Django 2.2.5.
|
|
|
+
|
|
|
+For more information on this file, see
|
|
|
+https://docs.djangoproject.com/en/2.2/topics/settings/
|
|
|
+
|
|
|
+For the full list of settings and their values, see
|
|
|
+https://docs.djangoproject.com/en/2.2/ref/settings/
|
|
|
+"""
|
|
|
+
|
|
|
+import os, datetime
|
|
|
+
|
|
|
+# 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.2/howto/deployment/checklist/
|
|
|
+
|
|
|
+# SECURITY WARNING: keep the secret key used in production secret!
|
|
|
+SECRET_KEY = 'c+)5afbc(m&qe^8t7gc54w6f-*==b2(l0(8rqef-cbwtv*3n$w'
|
|
|
+
|
|
|
+# SECURITY WARNING: don't run with debug turned on in production!
|
|
|
+DEBUG = True
|
|
|
+
|
|
|
+ALLOWED_HOSTS = ['*']
|
|
|
+
|
|
|
+
|
|
|
+# Application definition
|
|
|
+
|
|
|
+INSTALLED_APPS = [
|
|
|
+ #'django.contrib.admin',
|
|
|
+ 'django.contrib.auth',
|
|
|
+ 'django.contrib.contenttypes',
|
|
|
+ 'django.contrib.sessions',
|
|
|
+ 'django.contrib.messages',
|
|
|
+ 'django.contrib.staticfiles',
|
|
|
+
|
|
|
+ 'corsheaders',
|
|
|
+ 'rest_framework',
|
|
|
+ 'rest_framework_jwt',
|
|
|
+ 'django_filters',
|
|
|
+
|
|
|
+ 'apps.account',
|
|
|
+ 'apps.customer',
|
|
|
+ 'apps.log',
|
|
|
+ 'apps.xgjsms',
|
|
|
+]
|
|
|
+
|
|
|
+MIDDLEWARE = [
|
|
|
+ 'django.middleware.security.SecurityMiddleware',
|
|
|
+ 'django.contrib.sessions.middleware.SessionMiddleware',
|
|
|
+ 'django.middleware.common.CommonMiddleware',
|
|
|
+ 'django.middleware.csrf.CsrfViewMiddleware',
|
|
|
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
|
|
|
+ 'django.contrib.messages.middleware.MessageMiddleware',
|
|
|
+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
|
|
+ 'corsheaders.middleware.CorsMiddleware',
|
|
|
+]
|
|
|
+
|
|
|
+CORS_ALLOW_CREDENTIALS = True # 允许携带cookie
|
|
|
+CORS_ORIGIN_ALLOW_ALL = True
|
|
|
+CORS_ALLOW_METHODS = (
|
|
|
+ 'DELETE',
|
|
|
+ 'GET',
|
|
|
+ 'OPTIONS',
|
|
|
+ 'PATCH',
|
|
|
+ 'POST',
|
|
|
+ 'PUT',
|
|
|
+ 'VIEW',
|
|
|
+)
|
|
|
+CORS_ALLOW_HEADERS = (
|
|
|
+ 'XMLHttpRequest',
|
|
|
+ 'X_FILENAME',
|
|
|
+ 'accept-encoding',
|
|
|
+ 'authorization',
|
|
|
+ 'content-type',
|
|
|
+ 'dnt',
|
|
|
+ 'origin',
|
|
|
+ 'token',
|
|
|
+ 'user-agent',
|
|
|
+ 'x-csrftoken',
|
|
|
+ 'x-requested-with',
|
|
|
+ 'Pragma',
|
|
|
+)
|
|
|
+
|
|
|
+ROOT_URLCONF = 'car_net.urls'
|
|
|
+AUTH_USER_MODEL = "account.User"
|
|
|
+AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.AllowAllUsersModelBackend']
|
|
|
+
|
|
|
+TEMPLATES = [
|
|
|
+ {
|
|
|
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
|
|
+ 'DIRS': [],
|
|
|
+ '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 = 'net_car.wsgi.application'
|
|
|
+
|
|
|
+
|
|
|
+# Database
|
|
|
+# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
|
|
|
+
|
|
|
+DATABASES = {
|
|
|
+ 'default': {
|
|
|
+ 'ENGINE': 'django.db.backends.mysql',
|
|
|
+ 'NAME': 'net_car',
|
|
|
+ 'USER': 'root',
|
|
|
+ 'PASSWORD': 'lyh123',
|
|
|
+ 'HOST': '127.0.0.1',
|
|
|
+ 'PORT': 3306,
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+# Password validation
|
|
|
+# https://docs.djangoproject.com/en/2.2/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',
|
|
|
+ },
|
|
|
+]
|
|
|
+
|
|
|
+UNKNOW = 0
|
|
|
+FEMALE = 1
|
|
|
+MALE = 2
|
|
|
+GENDER_CHOICES = (
|
|
|
+ (UNKNOW, u'未知'),
|
|
|
+ (FEMALE, u'女'),
|
|
|
+ (MALE, u'男'),
|
|
|
+)
|
|
|
+
|
|
|
+DEFAULT = 0
|
|
|
+PASS = 1
|
|
|
+REJECT = 2
|
|
|
+CHECK_STATE_CHOICES = (
|
|
|
+ (DEFAULT, u'未审核'),
|
|
|
+ (PASS, u'已通过'),
|
|
|
+ (REJECT, u'未通过'),
|
|
|
+)
|
|
|
+
|
|
|
+# Internationalization
|
|
|
+# https://docs.djangoproject.com/en/2.2/topics/i18n/
|
|
|
+
|
|
|
+LANGUAGE_CODE = 'zh-hans'
|
|
|
+
|
|
|
+TIME_ZONE = 'Asia/Shanghai'
|
|
|
+
|
|
|
+USE_I18N = True
|
|
|
+
|
|
|
+USE_L10N = True
|
|
|
+
|
|
|
+USE_TZ = False
|
|
|
+
|
|
|
+
|
|
|
+# Static files (CSS, JavaScript, Images)
|
|
|
+# https://docs.djangoproject.com/en/2.2/howto/static-files/
|
|
|
+
|
|
|
+STATIC_URL = '/static/'
|
|
|
+
|
|
|
+MEDIA_URL = '/up/'
|
|
|
+MEDIA_ROOT = os.path.join(BASE_DIR, "uis/up/")
|
|
|
+
|
|
|
+UIS_URL = '/'
|
|
|
+UIS_ROOT = os.path.join(BASE_DIR, "uis/")
|
|
|
+
|
|
|
+
|
|
|
+JWT_AUTH = {
|
|
|
+ 'JWT_EXPIRATION_DELTA': datetime.timedelta(days=30),
|
|
|
+ 'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=360),
|
|
|
+ 'JWT_ALLOW_REFRESH': True,
|
|
|
+}
|
|
|
+
|
|
|
+REST_FRAMEWORK = {
|
|
|
+ 'DEFAULT_PERMISSION_CLASSES': (
|
|
|
+ 'rest_framework.permissions.AllowAny',
|
|
|
+ ),
|
|
|
+ 'DEFAULT_AUTHENTICATION_CLASSES': (
|
|
|
+ 'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
|
|
|
+ #'rest_framework.authentication.SessionAuthentication',
|
|
|
+ #'rest_framework.authentication.BasicAuthentication',
|
|
|
+ ),
|
|
|
+ 'DEFAULT_PARSER_CLASSES': (
|
|
|
+ 'rest_framework.parsers.JSONParser',
|
|
|
+ 'rest_framework.parsers.FormParser',
|
|
|
+ 'rest_framework.parsers.MultiPartParser'
|
|
|
+ ),
|
|
|
+ 'DEFAULT_RENDERER_CLASSES': (
|
|
|
+ 'rest_framework.renderers.JSONRenderer',
|
|
|
+ # 'rest_framework.renderers.BrowsableAPIRenderer',
|
|
|
+ ),
|
|
|
+ 'DEFAULT_FILTER_BACKENDS': (
|
|
|
+ 'django_filters.rest_framework.DjangoFilterBackend',
|
|
|
+ ),
|
|
|
+ #'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
|
|
|
+ 'DEFAULT_PAGINATION_CLASS': 'utils.pagination.CustomPagination',
|
|
|
+ #'EXCEPTION_HANDLER': 'rest_framework.views.exception_handler',
|
|
|
+ 'EXCEPTION_HANDLER': 'utils.handler.custom_exception_handler',
|
|
|
+ 'PAGE_SIZE': 10,
|
|
|
+ 'DATETIME_FORMAT': "%Y-%m-%d %H:%M:%S",
|
|
|
+ 'NON_FIELD_ERRORS_KEY': "error", # 序列化器错误KEY名称
|
|
|
+}
|
|
|
+
|
|
|
+# 导入本地设置
|
|
|
+try:
|
|
|
+ from net_car.local_settings import *
|
|
|
+except ImportError:
|
|
|
+ pass
|