《Django项目开发实战》黄索远 清华大学_2020.6【pdf】

更多免费试读下载

更多免费资源添加q群:125143551

每日免费试读下载

  • 内容简介:

    本书将Django框架的特性和Web开发实战结合在一起,介绍如何使用Django框架进行Web应用的开发,帮助读者构建跨平台的应用程序,节省使用Django框架开发Web的宝贵时间。找到针对这些问题的解决方案,大多数编程难题都会迎刃而解。 本书内容涵盖表单处理、会话管理、数据库交互、安全防护及程序的部署维护等运维方面的知识,并且介绍了高可用的Web应用原理。在本书中,读者可以更加方便地找到各种编程问题的解决方案。 本书实用性强,特别适合使用Python/PHP等进行Web开发的IT从业者和对Web开发感兴趣的读者阅读。

  • 作者简介:

    黄索远,2013年开始进入互联网行业,多年来一直专注于Python后台开发工作,有扎实的理论基础和丰富的实践经验。曾在腾讯、字节跳动公司担任高级软件开发工程师职位。

  • 目录:

    目 录

    第 1 篇

    开发工具及框架概述

    第1章 从零开始学Django 2

    1.1 网站运行原理 2

    1.1.1 HTTP 2

    1.1.2 Web发展 4

    1.1.3 浏览器 4

    1.1.4 MVC模式 6

    1.2 Python Web编程6

    1.2.1 通用网关接口 7

    1.2.2 WSGI协议 7

    1.2.3 模板引擎 8

    1.3 快速上手Django 8

    1.3.1 配置开发环境 8

    1.3.2 创建项目 10

    1.3.3 配置说明 11

    1.3.4 创建应用 12

    1.3.5 启动开发服务器 13

    1.3.6 编写一个页面 13

    1.4 总结 14

    1.5 练习 14

    第 2 篇

    项目案例实战

    第2章 构建电商网站 16

    2.1 网站需求分析 16

    2.1.1 需求 16

    2.1.2 需求分析 17

    2.2 网站结构 18

    2.2.1 分层设计 18

    2.2.2 技术选型 19

    2.3 用户模块 20

    2.3.1 Django自带的用户模块 20

    2.3.2 一对一扩展用户模型 22

    2.3.3 继承AbstractBaseUser 25

    2.3.4 继承AbstractUser 27

    2.4 商品库模块 27

    2.4.1 设计模型 28

    2.4.2 获取商品 28

    2.5 订单模块 29

    2.5.1 购物篮模型 29

    2.5.2 订单模型 30

    ?

    VI Django项目开发实战

    2.5.3 获取订单数据 31

    2.6 统计模块  33

    2.7 总结  34

    2.8 练习  34

    第3 章 Django 和数据库35

    3.1 管理  35

    3.1.1 配置 35

    3.1.2 连接池 37

    3.1.3 更改表结构 38

    3.2 查询  40

    3.2.1 保存对象 40

    3.2.2 获取对象 41

    3.2.3 懒加载和缓存 42

    3.2.4 聚合查询 43

    3.3 事务  44

    3.3.1 事务管理 44

    3.3.2 自动提交 45

    3.3.3 提交后执行操作 46

    3.4 数据库并发控制  47

    3.4.1 冲突 47

    3.4.2 悲观锁 48

    3.4.3 乐观锁 50

    3.4.4 解决冲突 51

    3.5 数据库扩展  52

    3.5.1 扩展方法 52

    3.5.2 读写分离 53

    3.5.3 垂直分库 55

    3.5.4 水平扩展 57

    3.5.5 算法分片 58

    3.5.6 动态分片 60

    3.5.7 全局ID  62

    3.6 MySQL 实践  63

    3.7 总结  64

    3.8 练习  64

    第4 章视图65

    4.1 配置URL  65

    4.1.1 URL 匹配  65

    4.1.2 配置嵌套  66

    4.1.3 反向解析URL  67

    4.2 视图函数  69

    4.2.1 视图函数  69

    4.2.2 请求和响应对象  70

    4.2.3 模板响应对象  71

    4.3 视图类  72

    4.3.1 基本用法  72

    4.3.2 视图类的优点  73

    4.4 文件上传  74

    4.4.1 文件表单  74

    4.4.2 文件存储  75

    4.4.3 使用对象存储系统  76

    4.5 生成文件  79

    4.5.1 生成CSV 文件  79

    4.5.2 生成PDF 文件 80

    4.6 中间件  81

    4.7 总结  83

    4.8 练习  83

    第5 章模板84

    5.1 Web 模板系统  84

    5.2 Django 模板系统  85

    ?

    目 录VII

    5.2.1 配置  85

    5.2.2 模板语言  86

    5.3 模板继承  88

    5.4 字符转义  90

    5.5 自定义标签和过滤器  92

    5.5.1 代码路径  92

    5.5.2 编写自定义过滤器  93

    5.5.3 自定义标签  93

    5.6 总结  95

    5.7 练习  95

    第6 章表单96

    6.1 网页表单  96

    6.1.1 表单元素  96

    6.1.2 提交数据  98

    6.2 Django 表单  98

    6.2.1 处理流程  99

    6.2.2 Form 类100

    6.2.3 ModelForm 类 102

    6.2.4 表单集合 103

    6.3 AJAX 表单 105

    6.3.1 AJAX 技术105

    6.3.2 动态表单 106

    6.4 验证码  107

    6.4.1 表单验证码 108

    6.4.2 AJAX 验证码109

    6.5 总结  110

    6.6 练习  110

    第7 章 Django 和缓存111

    7.1 Web 缓存系统 111

    7.1.1 Redis 缓存  111

    7.1.2 HTTP 缓存  114

    7.2 Django 缓存系统  115

    7.2.1 配置缓存  116

    7.2.2 使用缓存  117

    7.2.3 缓存页面  118

    7.2.4 使用HTTP 缓存 120

    7.3 缓存替换策略  122

    7.4 写入策略  126

    7.4.1 Cache-Aside 模式126

    7.4.2 Write-Through 模式 128

    7.4.3 Write-Back 模式129

    7.5 高可用缓存系统  131

    7.5.1 Redis 集群 131

    7.5.2 Codis 集群133

    7.5.3 缓存穿透和雪崩 134

    7.6 总结  135

    7.7 练习  135

    第8 章 Django 和消息队列136

    8.1 消息队列  136

    8.1.1 消息队列系统 136

    8.1.2 使用消息队列 138

    8.1.3 AMQP 139

    8.1.4 使用RabbitMQ 141

    8.2 Django 和Celery 框架  143

    8.2.1 任务类 143

    8.2.2 在Django 中使用Celery 145

    8.2.3 定时任务 148

    8.2.4 任务路由 150

    8.2.5 任务工作流 151

    ?

    VIII Django项目开发实战

    8.2.6 最佳实践  153

    8.3 高可用消息队列  154

    8.3.1 RabbitMQ 高可用  154

    8.3.2 NSQ 系统  155

    8.4 总结  156

    8.5 练习  156

    第9 章 Django 与安全157

    9.1 安全中间件  157

    9.1.1 跨站点脚本防护  157

    9.1.2 跨站点伪造请求防护  158

    9.1.3 SQL 注入防护 161

    9.1.4 点击劫持  162

    9.1.5 访问白名单  163

    9.2 数据安全  164

    9.2.1 密码保护  164

    9.2.2 安全连接  166

    9.2.3 请求签名  169

    9.2.4 重放攻击  171

    9.3 总结  173

    9.4 练习  173

    第10 章 Django 和访问控制174

    10.1 认证方式  174

    10.1.1 HTTP 基本访问认证  174

    10.1.2 访问令牌  176

    10.1.3 签名验证  179

    10.1.4 OAuth2 验证  181

    10.2 会话状态  184

    10.3 控制策略  186

    10.3.1 访问控制列表  186

    10.3.2 Django 权限系统 188

    10.3.3 基于身份的访问控制 189

    10.4 总结  191

    10.5 练习  192

    第11 章 Django 和测试193

    11.1  单元测试  193

    11.2  Django 单元测试  194

    11.2.1  编写测试用例 195

    11.2.2  运行测试用例 196

    11.3  Django 测试工具  198

    11.3.1  测试客户端 198

    11.3.2  测试类 200

    11.4  Mock 测试 201

    11.4.1  Mock 对象 202

    11.4.2  模拟返回值 203

    11.4.3  副作用 205

    11.4.4  限定模拟的范围 207

    11.5  总结  208

    11.6  练习  209

    第 3 篇

    高可用技术架构

    第12 章 Django 与部署212

    12.1 软件部署  212

    12.2 部署Django  213

    12.2.1 Web 服务网关接口 214

    12.2.2 配置uWSGI 服务器 215

    12.2.3 配置Gunicorn 服务器 218

    ?

    目 录IX

    12.2.4 配置Nginx 服务器 223

    12.3 服务管理  224

    12.3.1 使用Supervisord 管理服务225

    12.3.2 使用systemd 管理服务 226

    12.4 Django 与虚拟化技术  228

    12.4.1 使用Vagrant 部署Django 应用228

    12.4.2 使用Docker 部署Django 应用231

    12.4.3 Docker 的reap 问题234

    12.5 总结  236

    12.6 练习  236

    第13 章 Django 与负载均衡237

    13.1 调度算法  237

    13.1.1 循环调度算法 237

    13.1.2 最少连接调度算法 239

    13.1.3 哈希调度算法 240

    13.2 网络冗余  241

    13.2.1 网卡绑定 241

    13.2.2 虚拟路由器冗余 242

    13.3 常用负载均衡器  245

    13.3.1 负载均衡器的类型 245

    13.3.2 Linux 虚拟服务器246

    13.3.3 Nginx 反向代理 250

    13.4 服务发现  252

    13.4.1 服务注册中心 252

    13.4.2 注册服务 254

    13.4.3 发现服务 256

    13.5 总结  259

    13.6 练习  260

    第14 章 Django 与日志261

    14.1 Python 日志模块  261

    14.1.1 日志模块组件 261

    14.1.2 使用日志模块 263

    14.1.3 配置日志模块 266

    14.2 Django 日志工具  267

    14.3 日志管理  268

    14.3.1 Elastic 技术栈 269

    14.3.2 Elasticsearch 集群 273

    14.4 总结  275

    14.5 练习  276

    第15 章监控277

    15.1 监控数据采集  277

    15.1.1 工作指标 277

    15.1.2 资源指标 278

    15.1.3 事件 279

    15.1.4 收集数据 280

    15.2 告警  281

    15.3 使用Prometheus  282

    15.3.1 Prometheus 的工作方式282

    15.3.2 抓取Linux 系统数据284

    15.3.3 抓取Nginx 监控数据 286

    15.3.4 抓取MySQL 监控数据 288

    15.3.5 数据存储 289

    15.3.6 告警 290

    15.4 总结  291

    15.5 练习  291

    ?

    第16章 常用工具 292

    16.1 Git版本控制系统 292

    16.1.1 Git工作方式 292

    16.1.2 Gitflow工作流 294

    16.1.3 Git日志用法 296

    16.2 Linux常用软件 297

    16.2.1 安全Shell 297

    16.2.2 进程状态 299

    16.2.3 系统性能 301

    16.3 性能剖析 303

    16.3.1 调用路径图 304

    16.3.2 性能测试 306

    16.3.3 使用Pyflame生成火焰图 308

    16.4 总结 310

    16.5 练习 310

阅读全文
试读下载
下载价格15 书虫币
包年VIP免费
常见问题
关于版权问题!
本站不存储任何书籍资源,只利用互联网API接口提供搜索服务。如果侵犯了你的权益,请工单留言,我们将第一时间删除。
未搜索到自己需要的书籍!
如未搜索到自己需要的书籍,请工单留言,我们第一时间更新
0

评论0

注册就送体验VIP(15天),本站无充值入口,如有需要,签到吧,加油!如有问题工单留言
没有账号?注册  忘记密码?