在这里插入图片描述

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.1localhost 以及[::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_DIRSTrue时会在各个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.cssmain.css

(2)JavaScript 文件

  • 用于存放客户端脚本文件,可以增加页面的动态效果和交互性。
  • 例如:script.jsapp.js

(3)图像文件

  • 可以存放各种格式的图片文件,如 .png.jpg.jpeg.gif.svg 等。
  • 例如:logo.pngbanner.jpg

(4)字体文件

  • 用于存放网页上使用的字体文件,如 .ttf.otf.woff.woff2 等。
  • 例如:custom-font.woff

(5)图标文件

  • 用于存放小图标,如 .ico.png 格式的图标文件。
  • 例如:favicon.ico

(6)媒体文件

  • 虽然通常推荐将用户上传的媒体文件放在 MEDIA_URL 指定的目录下,但一些固定的视频、音频、PDF 等也可以放在静态资源目录 static 中。
  • 例如:promo.mp4guide.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项目开发奠定基础,建议在实际项目中根据需求参考官方文档进行深入学习。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部