在Django中,settings.py文件包含了项目的全局配置。这个文件中的设置控制了Django的行为,包括数据库配置、模板配置、静态文件配置等。
以下是一些常见的全局配置以及它们的作用:
- SECRET_KEY: 一个密钥,用于安全的生成签名。
- DEBUG: 是否开启调试模式。在调试模式下,Django 会提供详细的错误信息。
- ALLOWED_HOSTS: 一个列表,包含了允许Django服务器响应的主机名。
- INSTALLED_APPS: 一个列表,包含了项目中所有安装的应用。
- MIDDLEWARE: 一个列表,包含了Django的中间件。
- ROOT_URLCONF: 根URL配置的模块名。
- TEMPLATES: 一个列表,包含了模板引擎的配置。
- DATABASES: 数据库配置,包括数据库引擎、数据库名、用户、密码等。
- LANGUAGE_CODE: 项目使用的语言。
- TIME_ZONE: 项目使用的时区。
- STATIC_URL: 静态文件的URL前缀。
- STATIC_ROOT: 在生产环境中收集静态文件的目录。
- MEDIA_URL: 媒体文件的URL前缀。
- MEDIA_ROOT: 媒体文件存储的本地路径。
这里是一个简单的示例,展示了如何在settings.py中配置一些基本设置:
from pathlib import Path
 
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'your-secret-key'
 
# 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',
    # 你的应用
    'myapp',
]
 
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',
]
 
ROOT_URLCONF = 'myproject.urls'
 
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 = 'myproject.wsgi.application'
 
# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
 
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': B