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']
相关推荐
PHP实战开发录1 小时前
MySQL字段加索引为什么没变快
数据库·mysql·php·开发
红红谈说2 小时前
标签化推送与已读统计怎么做?一次通知链路的工程复盘
数据库·消息推送·数字乡村·集合运算·已读回执·标签体系·写入放大
Shadow(⊙o⊙)3 小时前
MySQL索引
数据库·mysql
倔强的石头_5 小时前
多环境配置治理:开发、测试、生产连接信息如何隔离
数据库
杨云龙UP5 小时前
一次数据库查询缓慢故障复盘:大表数据增长、SQL全表扫描导致系统响应异常
linux·运维·服务器·数据库·sql·mysql
2501_933670795 小时前
2027 应用统计学秋招选岗指南:统计、SQL、业务指标如何对应岗位
数据库·sql
言乐66 小时前
Python自动去除水印
开发语言·python·django·virtualenv·pygame
Alice-YUE6 小时前
向量数据库选型实战:Chroma/Qdrant/Milvus/PgVector 怎么选
数据库·milvus·向量数据库·chroma·rag·qdrant
invicinble6 小时前
python 编程语言 认识维度
开发语言·数据库·python
IT古董6 小时前
《FDE前沿部署工程师实战教程》29 - Enterprise AI Security:Agent安全体系设计
大数据·数据库·人工智能