《深入理解Django:框架内幕与实现原理》沈聪 | 您所在的位置:网站首页 › 深入理解Django › 《深入理解Django:框架内幕与实现原理》沈聪 |
全书共分为8 章,分别是Django 源码的前置知识、 Django 命令原理解析、Django 内置的ORM框架、Django 内置的模板系统、解读Django 核心模块的源码、Django 的视图层、Django 的中间件原理和解读Django 中的辅助代码。本书展示了剖析Django 框架的完整过程,这种剖析方式同样适用于其他框架,如Flask、Ansible 和Scrapy 等。 沈聪,本科毕业于南昌大学,硕士毕业于武汉大学电子信息学院,毕业后进入天翼云科技有限公司,目前在天翼云媒体存储小组从事大规模集群部署、运维平台开发及集群日常运维、巡检等工作。拥有多年运维开发经验,目前专注于Python自动化运维、云存储等方向,研究过数个热门Pyth框架源码,如Ansible、Django、Scrapy,在慕课网上发表了多个基础教程,内容涉及Nginx入门、Python算法、Django框架及Scrapy框架,并出版了《吃透Ansible:核心源码剖析与项目实战》一书。全树强,本科和硕士皆毕业于武汉大学电子信息学院,毕业后进入天翼云科技有限公司,目前在天翼云媒体存储小组负责媒体存储小组内部的统一运维管理平台研发工作,对Django框架源码有较为深入的研究,并且在Java后端和前端、以及自动化运维领域做过大量开发工作,有丰富的运维和开发经验,是一位全栈工程师。 第1 章 Django 源码的前置知识 ............................................................................................... 1 1.1 在学习Django 源码前,该做什么 ............................................................................. 1 1.1.1 Django 的版本选择 ...................................................................................... 1 1.1.2 Django 源码学习基础 .................................................................................. 2 1.2 搭建Django 的调试环境和测试环境 .......................................................................... 3 1.2.1 调试django-admin 命令 .................................................................................. 3 1.2.2 调试manage.py 命令 ....................................................................................... 8 1.2.3 调试框架源码 ................................................................................................. 11 1.2.4 搭建Django 的测试环境 ............................................................................... 15 1.3 学习Django 源码的建议 ........................................................................................... 17 1.4 小结 ............................................................................................................................. 18 第2 章 Django 命令原理解析 ...................................................................................... 19 2.1 基础方法介绍 ............................................................................................................. 19 2.1.1 find_commands()函数 .................................................................................... 19 2.1.2 load_command_class()函数 ............................................................................ 20 2.1.3 get_commands()函数 ...................................................................................... 20 2.1.4 call_command()函数 ...................................................................................... 21 2.2 startproject 命令的实现原理 ...................................................................................... 24 2.3 shell 命令的实现原理 ................................................................................................. 33 2.4 makemigrations 命令的实现原理 .............................................................................. 45 2.4.1 makemigrations 命令的基本操作示例 ........................................................ 45 2.4.2 迁移相关的基础类与方法 ......................................................................... 47 2.4.3 追踪makemigrations 命令 .......................................................................... 69 2.5 migrate 命令的实现原理 ............................................................................................ 78 2.6 小结 ............................................................................................................................. 90 第3 章 Django 内置的ORM 框架 ................................................................................ 91 3.1 读取Django 项目的配置信息 ................................................................................... 91 3.1.1 Settings 类 .................................................................................................. 92 3.1.2 LazySettings 类 ........................................................................................... 94 3.2 ORM 框架的底层核心 ............................................................................................... 97 3.2.1 mysqlclient 模块中的常用方法 .................................................................. 97 3.2.2 ORM 框架的源码解析 ............................................................................... 98 3.2.3 DatabaseWrapper 类的实战案例 .............................................................. 108 3.3 Django 中数据库操作背后的原理........................................................................... 116 3.3.1 在Django 中执行原生SQL 语句 ............................................................. 117 3.3.2 ORM 框架的基本操作 ............................................................................. 118 3.3.3 答疑解惑 .................................................................................................. 160 3.3.4 ORM 框架的聚合操作 ............................................................................. 162 3.4 ORM 框架的部分源码解读 ..................................................................................... 176 3.5 小结 ........................................................................................................................... 205 第4 章 Django 内置的模板系统 ................................................................................. 206 4.1 Django 内置的模板语法 .......................................................................................... 206 4.1.1 for 标签 .................................................................................................... 207 4.1.2 if 标签 ...................................................................................................... 211 4.1.3 csrf_token 标签 ......................................................................................... 212 4.1.4 with 标签 .................................................................................................. 212 4.1.5 cycle 标签 ................................................................................................. 213 4.1.6 include 标签 ............................................................................................. 214 4.1.7 过滤器标签 .............................................................................................. 215 4.2 Django 内置模板引擎源码解读 .............................................................................. 216 4.2.1 get_template()方法的源码解析 ................................................................ 216 4.2.2 _engine_list()方法的源码解析.................................................................. 216 4.2.3 EngineHandler 类的源码解析 .................................................................. 217 4.2.4 DjangoTemplates 类的源码解析 ............................................................... 221 4.3 答疑解惑 ................................................................................................................... 283 4.4 Jinja2 模块封装过程解析 ......................................................................................... 299 4.5 小结 ........................................................................................................................... 303 第5 章 解读Django 核心模块的源码 ........................................................................ 304 5.1 core 目录源码一览 ................................................................................................... 304 5.2 请求处理 ................................................................................................................... 305 5.3 缓存模块 ................................................................................................................... 316 5.4 检查模块 ................................................................................................................... 330 5.4.1 messages.py 文件的源码解析 ................................................................... 330 5.4.2 registry.py 文件的源码解析 ...................................................................... 333 5.5 序列化 ....................................................................................................................... 348 5.5.1 serialize()方法的源码解析 ....................................................................... 349 内容简介: 全书共分为8 章,分别是Django 源码的前置知识、 Django 命令原理解析、Django 内置的ORM框架、Django 内置的模板系统、解读Django 核心模块的源码、Django 的视图层、Django 的中间件原理和解读Django 中的辅助代码。本书展示了剖析Django 框架的完整过程,这种剖析方式同样适用于其他框架,如Flask、Ansible 和Scrapy 等。 作者简介: 沈聪,本科毕业于南昌大学,硕士毕业于武汉大学电子信息学院,毕业后进入天翼云科技有限公司,目前在天翼云媒体存储小组从事大规模集群部署、运维平台开发及集群日常运维、巡检等工作。拥有多年运维开发经验,目前专注于Python自动化运维、云存储等方向,研究过数个热门Pyth框架源码,如Ansible、Django、Scrapy,在慕课网上发表了多个基础教程,内容涉及Nginx入门、Python算法、Django框架及Scrapy框架,并出版了《吃透Ansible:核心源码剖析与项目实战》一书。全树强,本科和硕士皆毕业于武汉大学电子信息学院,毕业后进入天翼云科技有限公司,目前在天翼云媒体存储小组负责媒体存储小组内部的统一运维管理平台研发工作,对Django框架源码有较为深入的研究,并且在Java后端和前端、以及自动化运维领域做过大量开发工作,有丰富的运维和开发经验,是一位全栈工程师。 目录: 第1 章 Django 源码的前置知识 ............................................................................................... 11.1 在学习Django 源码前,该做什么 ............................................................................. 1 1.1.1 Django 的版本选择 ...................................................................................... 1 1.1.2 Django 源码学习基础 .................................................................................. 2 1.2 搭建Django 的调试环境和测试环境 .......................................................................... 3 1.2.1 调试django-admin 命令 .................................................................................. 3 1.2.2 调试manage.py 命令 ....................................................................................... 8 1.2.3 调试框架源码 ................................................................................................. 11 1.2.4 搭建Django 的测试环境 ............................................................................... 15 1.3 学习Django 源码的建议 ........................................................................................... 17 1.4 小结 ............................................................................................................................. 18 第2 章 Django 命令原理解析 ...................................................................................... 19 2.1 基础方法介绍 ............................................................................................................. 19 2.1.1 find_commands()函数 .................................................................................... 19 2.1.2 load_command_class()函数 ............................................................................ 20 2.1.3 get_commands()函数 ...................................................................................... 20 2.1.4 call_command()函数 ...................................................................................... 21 2.2 startproject 命令的实现原理 ...................................................................................... 24 2.3 shell 命令的实现原理 ................................................................................................. 33 2.4 makemigrations 命令的实现原理 .............................................................................. 45 2.4.1 makemigrations 命令的基本操作示例 ........................................................ 45 2.4.2 迁移相关的基础类与方法 ......................................................................... 47 2.4.3 追踪makemigrations 命令 .......................................................................... 69 2.5 migrate 命令的实现原理 ............................................................................................ 78 2.6 小结 ............................................................................................................................. 90 第3 章 Django 内置的ORM 框架 ................................................................................ 91 3.1 读取Django 项目的配置信息 ................................................................................... 91 3.1.1 Settings 类 .................................................................................................. 92 3.1.2 LazySettings 类 ........................................................................................... 94 3.2 ORM 框架的底层核心 ............................................................................................... 97 3.2.1 mysqlclient 模块中的常用方法 .................................................................. 97 3.2.2 ORM 框架的源码解析 ............................................................................... 98 3.2.3 DatabaseWrapper 类的实战案例 .............................................................. 108 3.3 Django 中数据库操作背后的原理........................................................................... 116 3.3.1 在Django 中执行原生SQL 语句 ............................................................. 117 3.3.2 ORM 框架的基本操作 ............................................................................. 118 3.3.3 答疑解惑 .................................................................................................. 160 3.3.4 ORM 框架的聚合操作 ............................................................................. 162 3.4 ORM 框架的部分源码解读 ..................................................................................... 176 3.5 小结 ........................................................................................................................... 205 第4 章 Django 内置的模板系统 ................................................................................. 206 4.1 Django 内置的模板语法 .......................................................................................... 206 4.1.1 for 标签 .................................................................................................... 207 4.1.2 if 标签 ...................................................................................................... 211 4.1.3 csrf_token 标签 ......................................................................................... 212 4.1.4 with 标签 .................................................................................................. 212 4.1.5 cycle 标签 ................................................................................................. 213 4.1.6 include 标签 ............................................................................................. 214 4.1.7 过滤器标签 .............................................................................................. 215 4.2 Django 内置模板引擎源码解读 .............................................................................. 216 4.2.1 get_template()方法的源码解析 ................................................................ 216 4.2.2 _engine_list()方法的源码解析.................................................................. 216 4.2.3 EngineHandler 类的源码解析 .................................................................. 217 4.2.4 DjangoTemplates 类的源码解析 ............................................................... 221 4.3 答疑解惑 ................................................................................................................... 283 4.4 Jinja2 模块封装过程解析 ......................................................................................... 299 4.5 小结 ........................................................................................................................... 303 第5 章 解读Django 核心模块的源码 ........................................................................ 304 5.1 core 目录源码一览 ................................................................................................... 304 5.2 请求处理 ................................................................................................................... 305 5.3 缓存模块 ................................................................................................................... 316 5.4 检查模块 ................................................................................................................... 330 5.4.1 messages.py 文件的源码解析 ................................................................... 330 5.4.2 registry.py 文件的源码解析 ...................................................................... 333 5.5 序列化 ....................................................................................................................... 348 5.5.1 serialize()方法的源码解析 ....................................................................... 349 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |