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']
相关推荐
名字还没想好☜4 分钟前
Go 的 select 实战:超时、非阻塞收发与优雅退出的三个套路
开发语言·数据库·golang·go·并发
NWU_LK9 分钟前
【WebFlux】第六篇 —— 全链路响应式与数据库交互
java·数据库
叶总没有会17 分钟前
3.2 构建AI智能体项目扩展知识
java·数据库·人工智能·spring·ai
YOU OU8 小时前
Redis基础常识与命令
数据库·redis·缓存
Database_Cool_11 小时前
OLTP 和 OLAP 区别详解:分析型数据库和事务型数据库怎么选(附阿里云 AnalyticDB MySQL 选型指南)
数据库·mysql·阿里云
爱写代码的阿森11 小时前
鸿蒙三方库 | harmony-utils之KvUtil键值型数据库操作详解
数据库·华为·harmonyos·鸿蒙·huawei
Database_Cool_11 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
姜太小白12 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql
窝子面13 小时前
手搓最简前后端协作-node
javascript·数据库