# -*- 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") # 调试模式:默认开启;生产环境可设置 DJANGO_DEBUG=0 关闭 DEBUG = os.getenv("DJANGO_DEBUG", "1").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.HeaderAuthorizationAuthentication", ], "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", "DATETIME_FORMAT": "%Y-%m-%dT%H:%M:%S", } # ─── Channels ─── CHANNEL_LAYERS = { "default": { "BACKEND": "channels.layers.InMemoryChannelLayer", } } # ─── 时区 / 国际化 ─── LANGUAGE_CODE = "zh-hans" TIME_ZONE = "Asia/Shanghai" USE_I18N = True USE_TZ = False # ─── 静态文件和媒体文件 ─── STATIC_URL = "/static/" STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles") MEDIA_URL = "/media/" MEDIA_ROOT = os.path.join(BASE_DIR, "media") # 导出文件目录 EXPORT_ROOT = os.path.join(MEDIA_ROOT, "exports")