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 小时前
mysql join语句、全表扫描 执行优化与访问冷数据对内存命中率的影响
数据库·mysql
全干engineer4 小时前
ClickHouse 入门详解:它到底是什么、优缺点、和主流数据库对比、适合哪些场景?
数据库·clickhouse
Hellyc6 小时前
基于模板设计模式开发优惠券推送功能以及对过期优惠卷进行定时清理
java·数据库·设计模式·rocketmq
lifallen6 小时前
Paimon LSM Tree Compaction 策略
java·大数据·数据结构·数据库·算法·lsm-tree
打酱油的;8 小时前
爬虫-request处理get
爬虫·python·django
{⌐■_■}10 小时前
【Kafka】登录日志处理的三次阶梯式优化实践:从同步写入到Kafka多分区批处理
数据库·分布式·mysql·kafka·go
isNotNullX10 小时前
数据中台架构解析:湖仓一体的实战设计
java·大数据·数据库·架构·spark
睿思达DBA_WGX13 小时前
由 DB_FILES 参数导致的 dg 服务器无法同步问题
运维·数据库·oracle
PythonicCC13 小时前
Django核心知识点详解:JSON、AJAX、Cookie、Session与用户认证
ajax·django·json