您好,欢迎来到聚文网。 登录 免费注册
深入理解Django 框架内幕与实现原理

深入理解Django 框架内幕与实现原理

  • 字数: 900000
  • 装帧: 平装
  • 出版社: 电子工业出版社
  • 出版日期: 2021-11-01
  • 商品条码: 9787121421884
  • 版次: 1
  • 开本: 16开
  • 页数: 604
  • 出版年份: 2021
定价:¥118 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
全书共分为8 章,分别是Django 源码的前置知识、 Django 命令原理解析、Django 内置的ORM框架、Django 内置的模板系统、解读Django 核心模块的源码、Django 的视图层、Django 的中间件原理和解读Django 中的辅助代码。本书展示了剖析Django 框架的完整过程,这种剖析方式同样适用于其他框架,如Flask、Ansible 和Scrapy 等。本书适合有一定Python基础的开发人员、Django框架的初学者,以及渴望进入开源世界的读者阅读。
目录
第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
5.5.2 JSON 序列化器的底层逻辑 . 359
5.5.3 简单分析Python 序列化器的输出结果 . 366
5.6 文件模块 . 367
5.6.1 uploadedfile.py 文件 . 367
5.6.2 images.py 文件 . 374
5.6.3 locks.py 文件 . 376
5.6.4 temp.py 文件 . 378
5.6.5 move.py 文件 . 379
5.6.6 storage.py 文件 . 381
5.6.7 uploadhandler.py 文件 . 384
5.7 发送邮件 . 393
5.8 小结 . 405

第6 章 Django 的视图层 . 406
6.1 视图层实战 . 406
6.1.1 实验1:Django 中的“hello, world” . 406
6.1.2 实验2:Django 中的视图类 . 409
6.1.3 实验3:Django 中的请求传参 . 410
6.1.4 实验4:Django 中的文件上传演示 . 414
6.1.5 实验5:在Django 中操作Session . 417
6.2 请求与响应 . 419
6.2.1 HttpRequest 类的源码 . 429
6.2.2 HttpResponse 类的源码 . 433
6.2.3 HttpRequest 类和HttpResponseBase 类的操作示例 . 440
6.3 视图层核心源码解读 . 444
6.3.1 HTTP 请求路径的匹配过程 . 449
6.3.2 答疑解惑 . 457
6.4 视图类与Mixin 类 . 462
6.4.1 Mixin 类的源码解析 . 462
6.4.2 TemplateView 类的源码解析 . 463
6.4.3 RedirectView 类的源码解析 . 467
6.4.4 DetailView 类和ListView 类的源码解析 . 469
6.4.5 MultipleObjectMixin 类的源码解析 . 479
6.4.6 Paginator 类的源码解析 . 482
6.5 追踪Session 相关的源码 . 486
6.5.1 Session 相关的配置 . 486
6.5.2 Session 的存储引擎 . 495
6.5.3 SessionBase 类中的代码文件 . 502
6.6 答疑解惑 . 507
6.7 小结 . 517

第7 章 Django 的中间件原理 . 518
7.1 配置中间件 . 518
7.2 加载中间件 . 519
7.3 中间件的处理流程 . 521
7.3.1 中间件的请求处理流程 . 521
7.3.2 中间件的响应处理流程 . 525
7.3.3 中间件的其他钩子方法 . 526
7.4 常用的中间件 . 528
7.4.1 Django 内置的中间件类 . 528
7.4.2 CsrfViewMiddleware 中间件 . 529
7.5 自定义中间件 . 536
7.6 小结 . 541

第8 章 解读Django 中的辅助代码 . 542
8.1 自动重载 . 542
8.2 日志配置 . 552
8.2.1 日志配置实战 . 553
8.2.2 日志配置的源码追踪 . 555
8.3 时间解析 . 559
8.3.1 datetime_safe.py 文件 . 559
8.3.2 dateformat.py 文件 . 562
8.3.3 dateparse.py 文件 . 565
8.4 文本处理 . 569
8.4.1 text.py 文件中的capfirst()函数和wrap()函数 . 570
8.4.2 html.py 文件中的代码 . 575
8.5 其他的类与函数 . 582
8.6 小结 . 589

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网