Files
boss_dp/server/settings.py
ddrwode 3303a980f6 haha
2026-03-04 14:11:12 +08:00

96 lines
2.5 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")
# 调试模式:默认开启;生产环境可设置 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")