84 lines
2.1 KiB
Python
84 lines
2.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
Django 配置文件。
|
|
"""
|
|
import os
|
|
import sys
|
|
|
|
from server.config import DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME
|
|
|
|
# ─── 基础 ───
|
|
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
SECRET_KEY = os.getenv("DJANGO_SECRET_KEY", "boss-dp-secret-key-change-in-production")
|
|
DEBUG = os.getenv("DJANGO_DEBUG", "True").lower() in ("true", "1", "yes")
|
|
ALLOWED_HOSTS = ["*"]
|
|
|
|
# ─── 应用 ───
|
|
INSTALLED_APPS = [
|
|
"django.contrib.contenttypes",
|
|
"rest_framework",
|
|
"channels",
|
|
"server",
|
|
]
|
|
|
|
# ─── 中间件 ───
|
|
MIDDLEWARE = [
|
|
"django.middleware.common.CommonMiddleware",
|
|
"server.middleware.CorsMiddleware",
|
|
"server.middleware.ResponseCodeMiddleware",
|
|
]
|
|
|
|
# ─── URL / ASGI ───
|
|
ROOT_URLCONF = "server.urls"
|
|
ASGI_APPLICATION = "server.asgi.application"
|
|
|
|
# ─── 数据库 ───
|
|
DATABASES = {
|
|
"default": {
|
|
"ENGINE": "django.db.backends.mysql",
|
|
"NAME": DB_NAME,
|
|
"USER": DB_USER,
|
|
"PASSWORD": DB_PASSWORD,
|
|
"HOST": DB_HOST,
|
|
"PORT": str(DB_PORT),
|
|
"OPTIONS": {
|
|
"charset": "utf8mb4",
|
|
},
|
|
}
|
|
}
|
|
|
|
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
|
|
|
# ─── DRF ───
|
|
REST_FRAMEWORK = {
|
|
"DEFAULT_AUTHENTICATION_CLASSES": [
|
|
"server.core.authentication.CookieTokenAuthentication",
|
|
],
|
|
"DEFAULT_PERMISSION_CLASSES": [
|
|
"rest_framework.permissions.IsAuthenticated",
|
|
],
|
|
"UNAUTHENTICATED_USER": None,
|
|
"DEFAULT_RENDERER_CLASSES": [
|
|
"rest_framework.renderers.JSONRenderer",
|
|
],
|
|
"DEFAULT_PARSER_CLASSES": [
|
|
"rest_framework.parsers.JSONParser",
|
|
"rest_framework.parsers.FormParser",
|
|
"rest_framework.parsers.MultiPartParser",
|
|
],
|
|
"EXCEPTION_HANDLER": "server.core.exception_handler.custom_exception_handler",
|
|
}
|
|
|
|
# ─── Channels ───
|
|
CHANNEL_LAYERS = {
|
|
"default": {
|
|
"BACKEND": "channels.layers.InMemoryChannelLayer",
|
|
}
|
|
}
|
|
|
|
# ─── 时区 / 国际化 ───
|
|
LANGUAGE_CODE = "zh-hans"
|
|
TIME_ZONE = "Asia/Shanghai"
|
|
USE_I18N = True
|
|
USE_TZ = False
|