Django 全局配置 settings 详解

文章目录

  • [1 概述](#1 概述)
    • [1.1 Django 目录结构](#1.1 Django 目录结构)
  • [2 常用配置:settings.py](#2 常用配置:settings.py)
    • [2.1 注册 APP:INSTALLED_APPS](#2.1 注册 APP:INSTALLED_APPS)
    • [2.2 模板路径:TEMPLATES](#2.2 模板路径:TEMPLATES)
    • [2.3 静态文件:STATICFILES_DIRS](#2.3 静态文件:STATICFILES_DIRS)
    • [2.4 数据库:DATABASES](#2.4 数据库:DATABASES)
    • [2.5 允许访问的主机:ALLOWED_HOSTS](#2.5 允许访问的主机:ALLOWED_HOSTS)

1 概述

1.1 Django 目录结构

2 常用配置:settings.py

2.1 注册 APP:INSTALLED_APPS

python 复制代码
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',  # 以上为默认 APP
    'app01.apps.App01Config',  # 以下是新增的应用
]

对应项目下的 apps.py 文件,如:

2.2 模板路径:TEMPLATES

python 复制代码
import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        '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',
            ],
        },
    },
]
  • 在根目录下添加 templates 文件夹,可实现跳转至对应名称的 HTML 页面

2.3 静态文件:STATICFILES_DIRS

python 复制代码
# 静态文件:CSS、JS、IMG 等

# 静态文件的 url
STATIC_URL = '/static/'

import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# 方式1:项目内创建静态文件(默认)
# 方式2:项目外创建静态文件
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'app01/static'),  # 项目内的静态文件(默认)
    os.path.join(BASE_DIR, 'static'),  # 项目外的静态文件
)

方式1:项目内创建 static 文件夹

方式2:项目外创建 static 文件夹

2.4 数据库:DATABASES

python 复制代码
# 默认
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# 修改为其他数据库,如:mysql
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',  # 数据库名称
        'USER': 'root',  # 用户名
        'PASSWORD': '123456',  # 密码
        'HOST': '127.0.0.1',  # 主机
        'PORT': '3306',  # 端口号
    }}

2.5 允许访问的主机:ALLOWED_HOSTS

python 复制代码
ALLOWED_HOSTS = []  # 默认 127.0.0.1 或 localhost
ALLOWED_HOSTS = [*]  # 所有
ALLOWED_HOSTS = ['192.168.100.1', '127.0.0.1']
相关推荐
数据库生产实战2 分钟前
Oracle LOB使用入门和简单使用,提供学习用的测试用例!
数据库·学习·oracle
武子康8 分钟前
Java-144 深入浅出 MongoDB BSON详解:MongoDB核心存储格式与JSON的区别与应用场景
java·开发语言·数据库·mongodb·性能优化·json·bjson
Raymond运维23 分钟前
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
linux·运维·数据库·mysql
高山上有一只小老虎29 分钟前
如何在DBeaver中配置高斯数据库的连接
数据库
云飞云共享云桌面32 分钟前
东莞精密机械制造工厂如何10个SolidWorks共用一台服务器资源
java·运维·服务器·网络·数据库·电脑·制造
ActionTech41 分钟前
2025 年 9 月《大模型 SQL 能力排行榜》发布,新增 Kimi K2 最新版测评!
数据库·sql·ai·oracle
lang201509282 小时前
掌握MyBatis Java API:高效操作数据库
java·数据库·mybatis
Mr.wangh2 小时前
Redis作为分布式锁
数据库·redis·分布式
白云偷星子2 小时前
MySQL笔记11
数据库·笔记·mysql
稚辉君.MCA_P8_Java3 小时前
WebSocket 是什么原理?为什么可以实现持久连接?
网络·数据库·websocket·网络协议