文章目录
- 1. 基础路径配置
- 2. 启动模式配置
- 3. 站点访问权限配置
- 4. App配置
- 5. 中间件配置
- 6. 模板配置
- 7. 数据库配置
- 8. 路由配置
- 9. 语言与时区配置
- 10. 静态文件配置
- 11. 总结
1. 基础路径配置
在settings.py
文件中,通过BASE_DIR
配置项来绑定项目的绝对路径。这个路径是动态计算的,所有项目文件都可以依赖这个路径。
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
# 在项目中构建路径,如下所示:BASE_DIR / '子目录'
BASE_DIR = Path(__file__).resolve().parent.parent
2. 启动模式配置
DEBUG
配置项决定了项目的启动模式:
DEBUG = True
:开发模式,启用调试功能DEBUG = False
:生产模式,禁用调试
DEBUG = True
3. 站点访问权限配置
ALLOWED_HOSTS
用于设置允许访问项目的网络地址列表:
-
空列表
[]
:仅允许127.0.0.1
、localhost
以及[::1]
访问 -
['*']
:允许任何地址访问 -
['yourdomain.com', 'www.yourdomain.com']
:仅允许指定的主机名访问项目。强烈推荐在生产环境中明确设置允许的主机ALLOWED_HOSTS = ['*']
注解:[::1]
:这是 IPv6 中的环回地址,功能和 127.0.0.1
一样,也是表示“本机”,通过 http://[::1]:8000
来访问。
4. App配置
在INSTALLED_APPS
中可以查看和管理项目应用(App):
-
可以添加自定义App,使用命令
python manage.py startapp myapp
-
注意:使用命令
python manage.py startapp myapp
后,Django 不会自动将新创建的 App 名称添加到INSTALLED_APPS
列表中。你需要手动将新 App 的名称添加到settings.py
文件中的INSTALLED_APPS
列表中,像这样:
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth',...'myapp', # 添加自定义的 App 名称
]
5. 中间件配置
在MIDDLEWARE
中配置项目所注册的中间件。
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",
]
6. 模板配置
TEMPLATES
配置项定义项目模板的信息,BACKEND
指定使用的模板引擎DIRS
指定模板存放路径APP_DIRS
为True
时会在各个App中查找模板OPTIONS
用于配置模板引擎的其他选项context_processors
列表定义了在每个模板渲染时自动添加到上下文中的处理器
TEMPLATES = [{ "BACKEND": "django.template.backends.django.DjangoTemplates", # 这里使用 Django 内置的模板引擎"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",# 启用消息框架相关的上下文变量],},},
]
⭐DIRS 和 APP_DIRS 模板文件查找规则说明:
- “DIRS”: [],“APP_DIRS”: True 时,仅查找各个APP中的模板;
- “DIRS”: [BASE_DIR / ‘自定义模板名’],“APP_DIRS”: True,时,先查找 DIRS中的”自定义模板名“路径下的模板,如果找不到,再查找各个APP中的模板;
- “DIRS”: [BASE_DIR / ‘自定义模板名’],“APP_DIRS”: False 时,仅查找 DIRS中的”自定义模板名“路径下的模板;
- “DIRS”:[],“APP_DIRS”:False 时,Django 将无法找到任何模板文件,将完全依赖自定义的模板引擎
BACKEND
7. 数据库配置
在DATABASES
字段中定义数据库配置,默认使用SQLite。可支持多种数据库,如MySQL、PostgreSQL等。
DATABASES = {"default": {"ENGINE": "django.db.backends.sqlite3","NAME": BASE_DIR / "db.sqlite3",}
}
- 对于MySQL数据库,需安装依赖包:
pip install pymysql
配置如下:
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', # 使用的数据库引擎,这里是 MySQL'NAME': 'mydatabase', # 数据库名称'USER': 'root', # 数据库用户名'PASSWORD': 'password', # 数据库用户密码'HOST': '127.0.0.1', # 数据库服务器的地址(通常是 IP 地址或主机名)'PORT': '3306', # 数据库服务器的端口号,MySQL 的默认端口是 3306}
}
- 其他数据库引擎:
PostgreSQL
:需安装依赖包:pip install psycopg2
'ENGINE': 'django.db.backends.postgresql'
Oracle
:需安装依赖包:pip install cx_Oracle
'ENGINE': 'django.db.backends.oracle' # Oracle
8. 路由配置
ROOT_URLCONF
指定项目的根级路由信息。
ROOT_URLCONF = 'myproject.urls'
myproject
是 Django 项目的名称,urls
是定义在 myproject
目录下的 urls.py
文件。
9. 语言与时区配置
LANGUAGE_CODE
设置项目的语言,TIME_ZONE
设置时区。
LANGUAGE_CODE = 'zh-hans' # 项目默认语言设置为简体中文 ('zh-hans' 表示简体中文)
# LANGUAGE_CODE = "en-us" # 项目默认语言设置为英文 ('en-us' 表示美式英语)TIME_ZONE = 'Asia/Shanghai' # 设置项目使用的时区为中国上海时间 (东八区)
# TIME_ZONE = "UTC" # 设置项目使用的时区为世界标准时间 (UTC)
10. 静态文件配置
STATIC_URL
这个配置项用于指定静态文件的 URL 前缀。
STATIC_URL = '/static/'
在这个目录下,可以存放各种静态资源文件,这些文件通常不会随着请求的变化而改变。常见的静态文件类型包括如下:
(1)CSS 文件
- 用于存放样式表文件,可以定义页面的布局、样式和外观。
- 例如:
styles.css
、main.css
。
(2)JavaScript 文件
- 用于存放客户端脚本文件,可以增加页面的动态效果和交互性。
- 例如:
script.js
、app.js
。
(3)图像文件
- 可以存放各种格式的图片文件,如
.png
、.jpg
、.jpeg
、.gif
、.svg
等。 - 例如:
logo.png
、banner.jpg
。
(4)字体文件
- 用于存放网页上使用的字体文件,如
.ttf
、.otf
、.woff
、.woff2
等。 - 例如:
custom-font.woff
。
(5)图标文件
- 用于存放小图标,如
.ico
或.png
格式的图标文件。 - 例如:
favicon.ico
。
(6)媒体文件
- 虽然通常推荐将用户上传的媒体文件放在
MEDIA_URL
指定的目录下,但一些固定的视频、音频、PDF 等也可以放在静态资源目录static
中。 - 例如:
promo.mp4
、guide.pdf
。
(7)其他静态资源
- 其他不会改变的资源文件,如
.json
配置文件等,也可以放在静态资源目录static
中。
⭐注意:HTML可以放吗?什么样的HTML文件可以放?
- HTML 文件通常需要在 Django 中作为模板进行渲染,这样才可以动态插入数据,因此推荐放在 模板目录(
templates/
) 中。 - 纯静态HTML文件可以放到静态资源目录
static
下,但需要通过/static/
URL 前缀访问。例如:访问static/html/help.html
页面可以通过http://example.com/static/html/help.html
访问。 - 最终建议:静态资源目录不要放HTML文件,画蛇添足。
11. 总结
本节介绍了Django框架常用的配置信息。这些设置为后续的Web项目开发奠定基础,建议在实际项目中根据需求参考官方文档进行深入学习。