Django 项目创建后,在主应用中会有一个 settings.py 文件,这个就是该项目的配置文件
详解配置
- settings 文件包含 Django 安装的所有配置
- settings 文件是一个包含模块级变量的 python 模块
- settings 中的所有配置项的 key 必须全部大写
- settings 中每个配置项都有默认值,默认配置内容在 django/conf/global_settings.py 中。项目中不需要导入该模块,Django 框架会自动获取
- settings 中可以添加自定义的配置项
```python
导入默认配置
from django.conf import global_settings
查看(CMD/Ctrl + 点击)该语句的 global_settings
> 一般不需要去修改 global_settings<a name="Hj9C7"></a>### 启用配置<a name="YmZTP"></a>#### 自动配置当启动 manage.py 时,默认已在 manage.py 中配置```pythonif __name__ == '__main__':os.environ.setdefault('DJANGO_SETTINGS_MODULE', '项目名称.settings')
手动配置
python manage.py runserver IP:[PORT] --settings=项目名称.settings
部署启动
os.environ.setdefault('DJANGO_SETTINGS_MODULE', '项目名称.settings')
配置文件
文件路径
BASE_DIR = Path(__file__).resolve().parent.parent
当前文件所在文件夹的上一级目录的绝对路径
加密 session
SECRET_KEY = '随机的字符串'# 生成的方法from django.core.management import utilsutils.get_random_secret_key()
默认自动生成
调试模式
DEBUG = True
默认是 True,协助开发时看到错误的所有详细信息。部署时一定要修改为 False
域名设置
ALLOWED_HOSTS = []
- 允许所有域名访问: ALLOWED_HOSTS = [’*‘]
- 指定域名访问:ALLOWED_HOSTS = [’*.主域名.com‘]
应用设置
INSTALLED_APPS = []
中间层
MIDDLEWARE = []
配置过滤器,web安全
基础 URLS
ROOT_URLCONF = '项目名称.urls'
模板设置
TEMPLATES = [{'DIRS': []}]
服务器配置
WSGI_APPLICATION = '项目名称.wsgi.application'
默认自动代入项目名称
数据库配置
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': BASE_DIR / 'db.sqlite3',}}
默认 sqlite3 数据库
静态文件
STATIC_URL = 'static/'
其他设置
LANGUAGE_CODE = 'en-us'
默认英文,改为 zh-Hans 中文
获取配置
from django.conf import settingsprint(f'settings.key名')
不要导入具体的 settings 模块的路径,会形成高耦合
