当前位置: 首页 > news >正文

(二)Django框架常用配置

接上文:

1.Django框架配置概述

        Django的配置系统允许开发者⾃定义框架的⾏为。所有配置都定义在项⽬的 settings.py ⽂件中,

这是⼀个包含Python变量的模块。Django的配置遵循以下原则:

  • 所有配置都是Python代码,可以动态设置
  • 配置按模块组织,便于管理
  • ⽀持不同环境(开发、测试、⽣产)的配置

Django的配置是动态的,因为django在启动时会动态的加载seetings.py的配置项,而且这些配置项可以通过代码,环境变量来进行调整。

2.Django框架的基础路径配置

Django框架的基础路径配置是通过settings.py⽂件中的BASE_DIR配置项来完成的。BASE_DIR配置项⽤于绑定当前项⽬的绝对路径,且该路径是动态计算出来的,所有项⽬⽂件都可以依赖此绝对路径。具体代码如下:

# 项⽬根⽬录
BASE_DIR = Path(__file__).resolve().parent.parent

3 Django框架的启动模式配置

Django⽀持多种启动模式,最常⽤的是开发服务器和⽣产服务器。
Django框架的启动模式配置是通过settings.py⽂件中的DEBUG配置项来完成的。具体说明如下:
  • 当DEBUG = True时,表示开发环境中使⽤“调试模式”,该模式主要⽤于开发过程中的调试。
  • 当DEBUG = False时,表示当前项⽬运⾏在“⽣产环境”中,该模式主要⽤于不启⽤调试模式的情形。
# 安全警告:请勿在⽣产环境中开启调试模式
DEBUG = True

4 Django框架的站点访问权限配置

Django框架的站点访问权限配置是通过settings.py⽂件中的ALLOWED_HOSTS配置项来完成的。
ALLOWED_HOSTS配置项⽤于设置是否允许访问到本项⽬的⽹络地址列表,具体说明如下:
  1. 当ALLOWED_HOSTS配置项取值为[],即空列表,表示只有127.0.0.1、localhost、'[::1]'能访问本项⽬。
  2. 当ALLOWED_HOSTS配置项取值为['*'],表示任何⽹络地址都能访问当前项⽬。
  3. 当ALLOWED_HOSTS配置项取值为['*.hostname.cn', 'django.com'],表示只有当前这两个主机能访问 当前项⽬。
注意 如果想要局域⽹内的其他主机也能访问此服务器,那么在启动服务器时应使⽤如下命令:
python manage.py runserver 0.0.0.0:8000
上述命令指定局域⽹内的所有主机都可以通过8000端⼝访问。此外,ALLOWED_HOSTS需要设置为 ['*']。

5 Django框架的App配置

在settings.py⽂件的INSTALLED_APPS配置项中,可以查看到关于项⽬应⽤(App)的配置信息。另外, 设计⼈员可以在其中增加⾃定义App。具体代码如下:
# Django项⽬中已安装的应⽤程序列表
# 该列表⽤于配置Django项⽬需要加载的应⽤模块
# 包含Django内置的管理、认证、会话等核⼼应⽤以及⾃定义应⽤
INSTALLED_APPS = ['django.contrib.admin', # Django内置的应⽤, ⽤于管理Django项⽬'django.contrib.auth', # Django内置的应⽤, ⽤于处理⽤户认证'django.contrib.contenttypes', # Django内置的应⽤, ⽤于处理数据库'django.contrib.sessions', # Django内置的应⽤, ⽤于处理会话'django.contrib.messages', # Django内置的应⽤, ⽤于处理消息'django.contrib.staticfiles', # Django内置的应⽤, ⽤于处理静态⽂件'myapp', # 添加应⽤名, ⽤于处理⾃定义应⽤
]

创建和注册app的命令示例

python manage.py startapp 应用名

6 Django框架的中间件配置

在settings.py⽂件的MIDDLEWARE配置项中,可以查看到关于项⽬所注册的中间件的配置信息。
中间件是处理请求和响应的钩⼦。Django按顺序执⾏中间件,具体代码如下:
# Django项⽬中间件配置列表
# 该列表定义了Django请求/响应处理过程中要经过的中间件组件
# 中间件按照列表顺序依次执⾏,每个中间件负责处理特定的功能
MIDDLEWARE = ['django.middleware.security.SecurityMiddleware', # 安全中间件, ⽤于设置
安全HTTP头部'django.contrib.sessions.middleware.SessionMiddleware', # 会话中间件,
⽤于处理⽤户会话管理'django.middleware.common.CommonMiddleware', # 通⽤中间件, ⽤于处理URL规
范化'django.middleware.csrf.CsrfViewMiddleware', # CSRF中间件, ⽤于处理跨站
请求伪造攻击'django.contrib.auth.middleware.AuthenticationMiddleware', # 认证中间
件, ⽤于处理⽤户认证相关功能'django.contrib.messages.middleware.MessageMiddleware', # 消息中间件,
⽤于处理⼀次性消息提示功能'django.middleware.clickjacking.XFrameOptionsMiddleware', # XFrameOpt
ions中间件, ⽤于防⽌点击劫持攻击
]

7 Django框架的模板配置

在settings.py⽂件的TEMPLATES配置项中,可以查看到关于项⽬模板的配置信息。项⽬模板⽤于存放 静态HTML⽂件的配置信息,具体代码如下
# TEMPLATES配置列表,⽤于定义Django项⽬的模板引擎设置
# 每个字典元素代表⼀个模板引擎的配置,包含以下关键配置项:
# BACKEND: 指定模板引擎的后端实现类路径
# DIRS: 指定模板⽂件的搜索⽬录列表
# APP_DIRS: 是否在已安装应⽤的templates⽬录中⾃动查找模板
# OPTIONS: 模板引擎的额外配置选项,如上下⽂处理器等
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', #
使⽤Django模板引擎, ⽤于处理模板⽂件'DIRS': [], # 模板⽂件的搜索⽬录列表'APP_DIRS': True, # 是否在已安装应⽤的templates⽬录中⾃动查找模板'OPTIONS': {# context_processors: 上下⽂处理器列表,⽤于向模板上下⽂中添加变量# request: 添加request对象到模板上下⽂# auth: 添加⽤户认证相关变量到模板上下⽂# messages: 添加消息框架相关变量到模板上下⽂'context_processors': ['django.template.context_processors.request', # 添加reque
st对象到模板上下⽂'django.contrib.auth.context_processors.auth', # 添加⽤户
认证相关变量到模板上下⽂'django.contrib.messages.context_processors.messages', #
添加消息框架相关变量到模板上下⽂],},},
]
'APP_DIRS'为True时会到各个APP中去寻找模板,找到⼀个结果就会返回。
模板使⽤的优先级DIRS⾼于APP_DIRS。

8 Django框架的数据库配置

Django应⽤程序的数据库配置是在settings.py⽂件中的DATABASES字段中定义的。Django应⽤程序默 认配置的是SQLite数据库,代码如下:
# Django数据库配置字典,⽤于定义项⽬中使⽤的数据库连接信息
# 包含两个数据库配置:默认的SQLite数据库和⼀个MySQL数据库配置
DATABASES = {# 默认数据库配置,使⽤SQLite3数据库引擎'default': {'ENGINE': 'django.db.backends.sqlite3', # 数据库引擎为SQLite3'NAME': BASE_DIR / 'db.sqlite3', # 数据库⽂件路径,位于项⽬根⽬录下的d
b.sqlite3⽂件},# MySQL数据库配置,命名为'mysql''mysql': {'ENGINE': 'django.db.backends.mysql', # 数据库引擎为MySQL'NAME': 'mydb', # 数据库名称'USER': 'root', # 数据库⽤户名'PASSWORD': 'root23', # 数据库密码'HOST': '127.0.0.1', # 数据库服务器地址'PORT': '3306', # 数据库端⼝号}
}
'NAME'字段定义的是MySQL数据库名;另外,如果是SQLite数据库,就需要填写数据库⽂件的绝对位 置。
在上⾯的配置过程完成后,就可以安装Python连接MySQL数据库的驱动程序PyMySQL了,具体⽅法如 下:
pip install mysqlclient # 官⽅推荐
# 或
pip install pymysql #
Django 默认 只连接 default 键。

9 Django框架的根级路由配置

在settings.py⽂件的ROOT_URLCONF配置项中,可以查看到项⽬根级路由的配置信息
# ROOT_URLCONF = 'DjangoProjectName.urls'
ROOT_URLCONF = 'mysite.urls' # Django项⽬的URL配置⼊⼝

10 Django框架的语⾔配置

在settings.py⽂件的LANGUAGE_CODE配置项中,可以查看到项⽬语⾔的配置信息。
Django⽀持国际化和本地化,示例代码如下:
LANGUAGE_CODE = 'en-us' # 语⾔代码, ⽤于设置Django项⽬的语⾔, 默认为英⽂
# 语⾔代码
LANGUAGE_CODE = 'zh-hans'
# ⽀持的语⾔
LANGUAGES = [('zh-hans', ('简体中⽂')),('en', ('English')),
]
# 翻译⽂件⽬录
LOCALE_PATHS = [BASE_DIR / 'locale']

11 Django框架的时区配置

在settings.py⽂件的TIME_ZONE配置项中,可以查看到项⽬时区的配置信息。
Django使⽤时区来处理⽇期和时间,示例代码如下
# 时区
TIME_ZONE = 'UTC' # 时区, ⽤于设置Django项⽬的时区, 默认为UTC时区
TIME_ZONE = 'Asia/Shanghai'
# 是否使⽤时区感知 datetime 对象
USE_TZ = True

12 Django框架的静态⽂件配置

在settings.py⽂件的STATIC_URL配置项中,可以查看到项⽬静态⽂件的配置信息。所谓静态⽂件,就 是指图⽚、JavaScript脚本、样式表、⾳频、视频以及部分HTML⽂件等。示例代码如下:
# 静态⽂件URL
STATIC_URL = 'static/'
# 静态⽂件⽬录
STATICFILES_DIRS = [BASE_DIR / 'static',
]
# 静态⽂件收集⽬录
STATIC_ROOT = BASE_DIR / 'staticfiles'


文章转载自:

http://k9JcDpzd.rmtmk.cn
http://OuLhKhs2.rmtmk.cn
http://P6RA0x9T.rmtmk.cn
http://hfHCOR4D.rmtmk.cn
http://ui3oEtIa.rmtmk.cn
http://dRpEzzb7.rmtmk.cn
http://1rhZK8rx.rmtmk.cn
http://VQeT80l5.rmtmk.cn
http://Kvhs1f3e.rmtmk.cn
http://k0ONhYGB.rmtmk.cn
http://thKq85A0.rmtmk.cn
http://aFOKUuMw.rmtmk.cn
http://E2YA4zhp.rmtmk.cn
http://PPyQmme9.rmtmk.cn
http://09CQEWHk.rmtmk.cn
http://nA98z1Gb.rmtmk.cn
http://vIrq6lh2.rmtmk.cn
http://SWzTwo29.rmtmk.cn
http://NSLv7asB.rmtmk.cn
http://U8NbPCQG.rmtmk.cn
http://aOz8XTt2.rmtmk.cn
http://ZBUtXWOK.rmtmk.cn
http://6SL5NMdA.rmtmk.cn
http://276sibJE.rmtmk.cn
http://gRtgF3lM.rmtmk.cn
http://xiWpZjAe.rmtmk.cn
http://Ff541u28.rmtmk.cn
http://phfOIk26.rmtmk.cn
http://Fv6D0EhC.rmtmk.cn
http://lr3rp9lf.rmtmk.cn
http://www.dtcms.com/a/383701.html

相关文章:

  • Android开发-数据库SQLite
  • (附源码)基于springboot的幼儿园管理系统
  • 【从零到公网】本地电脑部署服务并实现公网访问(IPv4/IPv6/DDNS 全攻略)
  • VTK基础(01):VTK中的基本概念
  • Sentinel:微服务架构下的高可用流量防卫兵
  • Unity学习----【进阶】TextMeshPro学习(三)--进阶知识点(TMP基础设置,材质球相关,两个辅助工具类)
  • OpenCV:指纹识别
  • map/multimap容器
  • leetcode 966. 元音拼写检查器 中等
  • esp32程序存储结构--自用笔记版
  • leetcode 21 合并两个有序链表
  • OneCode 移动套件多平台适配详细报告
  • RAGAS新手入门教程:从基础到实践
  • 在 CentOS 中安装 VirtualBox 增强功能的步骤
  • 网络编程-day4
  • 学习笔记:第一个Python程序
  • Docker-compose.yml集群设置
  • 课后作业-2025-09-14
  • 软件工程实践一:Git 使用教程(含分支与 Gitee)
  • 知识贡献缺乏激励该如何改善
  • 一个冷门算法——Floyd判圈算法在Leetcode中的应用
  • 程晓明在链改 2.0 六方会谈首提 “双众筹 + 私交所” 回应 RWA 国内落地可行方案
  • 【车载audio开发】【基础概念1】【音频基础概念通俗讲解】
  • O3DE社区发布2505.0版本
  • VSCode 的 Run and Debug 下拉菜单都是怎么配置的,原理是什么?
  • Ligero 和 Brakedown PCS中的tensor product结构
  • 高效群签名方案与优化方法
  • [第一章] web入门—N1book靶场详细思路讲解(二)
  • 行优先 vs 列优先:性能差异揭秘
  • python把文件从一个文件复制到另一个文件夹