Django项目开发实战作者: 黄索远出版时间; 2020年版内容简介 本书将Django框架的特性和Web开发实战结合在一起,介绍如何使用Django框架进行Web应用的开发,帮助读者构建跨平台的应用程序,节省使用Django框架开发Web的宝贵时间。找到针对这些问题的解决方案,大多数编程难题都会迎刃而解。 本书内容涵盖表单处理、会话管理、数据库交互、安全防护及程序的部署维护等运维方面的知识,并且介绍了高可用的Web应用原理。在本书中,读者可以更加方便地找到各种编程问题的解决方案。 本书实用性强,特别适合使用Python/PHP等进行Web开发的IT从业者和对Web开发感兴趣的读者阅读。目录目 录第 1 篇开发工具及框架概述第1章 从零开始学Django 21.1 网站运行原理 21.1.1 HTTP 21.1.2 Web发展 41.1.3 浏览器 41.1.4 MVC模式 61.2 Python Web编程61.2.1 通用网关接口 71.2.2 WSGI协议 71.2.3 模板引擎 81.3 快速上手Django 81.3.1 配置开发环境 81.3.2 创建项目 101.3.3 配置说明 111.3.4 创建应用 121.3.5 启动开发服务器 131.3.6 编写一个页面 131.4 总结 141.5 练习 14第 2 篇项目案例实战第2章 构建电商网站 162.1 网站需求分析 162.1.1 需求 162.1.2 需求分析 172.2 网站结构 182.2.1 分层设计 182.2.2 技术选型 192.3 用户模块 202.3.1 Django自带的用户模块 202.3.2 一对一扩展用户模型 222.3.3 继承AbstractBaseUser 252.3.4 继承AbstractUser 272.4 商品库模块 272.4.1 设计模型 282.4.2 获取商品 282.5 订单模块 292.5.1 购物篮模型 292.5.2 订单模型 30?VI Django项目开发实战2.5.3 获取订单数据 312.6 统计模块 332.7 总结 342.8 练习 34第3 章 Django 和数据库353.1 管理 353.1.1 配置 353.1.2 连接池 373.1.3 更改表结构 383.2 查询 403.2.1 保存对象 403.2.2 获取对象 413.2.3 懒加载和缓存 423.2.4 聚合查询 433.3 事务 443.3.1 事务管理 443.3.2 自动提交 453.3.3 提交后执行操作 463.4 数据库并发控制 473.4.1 冲突 473.4.2 悲观锁 483.4.3 乐观锁 503.4.4 解决冲突 513.5 数据库扩展 523.5.1 扩展方法 523.5.2 读写分离 533.5.3 垂直分库 553.5.4 水平扩展 573.5.5 算法分片 583.5.6 动态分片 603.5.7 全局ID 623.6 MySQL 实践 633.7 总结 643.8 练习 64第4 章视图654.1 配置URL 654.1.1 URL 匹配 654.1.2 配置嵌套 664.1.3 反向解析URL 674.2 视图函数 694.2.1 视图函数 694.2.2 请求和响应对象 704.2.3 模板响应对象 714.3 视图类 724.3.1 基本用法 724.3.2 视图类的优点 734.4 文件上传 744.4.1 文件表单 744.4.2 文件存储 754.4.3 使用对象存储系统 764.5 生成文件 794.5.1 生成CSV 文件 794.5.2 生成PDF 文件 804.6 中间件 814.7 总结 834.8 练习 83第5 章模板845.1 Web 模板系统 845.2 Django 模板系统 85?目 录VII5.2.1 配置 855.2.2 模板语言 865.3 模板继承 885.4 字符转义 905.5 自定义标签和过滤器 925.5.1 代码路径 925.5.2 编写自定义过滤器 935.5.3 自定义标签 935.6 总结 955.7 练习 95第6 章表单966.1 网页表单 966.1.1 表单元素 966.1.2 提交数据 986.2 Django 表单 986.2.1 处理流程 996.2.2 Form 类1006.2.3 ModelForm 类 1026.2.4 表单集合 1036.3 AJAX 表单 1056.3.1 AJAX 技术1056.3.2 动态表单 1066.4 验证码 1076.4.1 表单验证码 1086.4.2 AJAX 验证码1096.5 总结 1106.6 练习 110第7 章 Django 和缓存1117.1 Web 缓存系统 1117.1.1 Redis 缓存 1117.1.2 HTTP 缓存 1147.2 Django 缓存系统 1157.2.1 配置缓存 1167.2.2 使用缓存 1177.2.3 缓存页面 1187.2.4 使用HTTP 缓存 1207.3 缓存替换策略 1227.4 写入策略 1267.4.1 Cache-Aside 模式1267.4.2 Write-Through 模式 1287.4.3 Write-Back 模式1297.5 高可用缓存系统 1317.5.1 Redis 集群 1317.5.2 Codis 集群1337.5.3 缓存穿透和雪崩 1347.6 总结 1357.7 练习 135第8 章 Django 和消息队列1368.1 消息队列 1368.1.1 消息队列系统 1368.1.2 使用消息队列 1388.1.3 AMQP 1398.1.4 使用RabbitMQ 1418.2 Django 和Celery 框架 1438.2.1 任务类 1438.2.2 在Django 中使用Celery 1458.2.3 定时任务 1488.2.4 任务路由 1508.2.5 任务工作流 151?VIII Django项目开发实战8.2.6 最佳实践 1538.3 高可用消息队列 1548.3.1 RabbitMQ 高可用 1548.3.2 NSQ 系统 1558.4 总结 1568.5 练习 156第9 章 Django 与安全1579.1 安全中间件 1579.1.1 跨站点脚本防护 1579.1.2 跨站点伪造请求防护 1589.1.3 SQL 注入防护 1619.1.4 点击劫持 1629.1.5 访问白名单 1639.2 数据安全 1649.2.1 密码保护 1649.2.2 安全连接 1669.2.3 请求签名 1699.2.4 重放攻击 1719.3 总结 1739.4 练习 173第10 章 Django 和访问控制17410.1 认证方式 17410.1.1 HTTP 基本访问认证 17410.1.2 访问令牌 17610.1.3 签名验证 17910.1.4 OAuth2 验证 18110.2 会话状态 18410.3 控制策略 18610.3.1 访问控制列表 18610.3.2 Django 权限系统 18810.3.3 基于身份的访问控制 18910.4 总结 19110.5 练习 192第11 章 Django 和测试19311.1 单元测试 19311.2 Django 单元测试 19411.2.1 编写测试用例 19511.2.2 运行测试用例 19611.3 Django 测试工具 19811.3.1 测试客户端 19811.3.2 测试类 20011.4 Mock 测试 20111.4.1 Mock 对象 20211.4.2 模拟返回值 20311.4.3 副作用 20511.4.4 限定模拟的范围 20711.5 总结 20811.6 练习 209第 3 篇高可用技术架构第12 章 Django 与部署21212.1 软件部署 21212.2 部署Django 21312.2.1 Web 服务网关接口 21412.2.2 配置uWSGI 服务器 21512.2.3 配置Gunicorn 服务器 218?目 录IX12.2.4 配置Nginx 服务器 22312.3 服务管理 22412.3.1 使用Supervisord 管理服务22512.3.2 使用systemd 管理服务 22612.4 Django 与虚拟化技术 22812.4.1 使用Vagrant 部署Django 应用22812.4.2 使用Docker 部署Django 应用23112.4.3 Docker 的reap 问题23412.5 总结 23612.6 练习 236第13 章 Django 与负载均衡23713.1 调度算法 23713.1.1 循环调度算法 23713.1.2 最少连接调度算法 23913.1.3 哈希调度算法 24013.2 网络冗余 24113.2.1 网卡绑定 24113.2.2 虚拟路由器冗余 24213.3 常用负载均衡器 24513.3.1 负载均衡器的类型 24513.3.2 Linux 虚拟服务器24613.3.3 Nginx 反向代理 25013.4 服务发现 25213.4.1 服务注册中心 25213.4.2 注册服务 25413.4.3 发现服务 25613.5 总结 25913.6 练习 260第14 章 Django 与日志26114.1 Python 日志模块 26114.1.1 日志模块组件 26114.1.2 使用日志模块 26314.1.3 配置日志模块 26614.2 Django 日志工具 26714.3 日志管理 26814.3.1 Elastic 技术栈 26914.3.2 Elasticsearch 集群 27314.4 总结 27514.5 练习 276第15 章监控27715.1 监控数据采集 27715.1.1 工作指标 27715.1.2 资源指标 27815.1.3 事件 27915.1.4 收集数据 28015.2 告警 28115.3 使用Prometheus 28215.3.1 Prometheus 的工作方式28215.3.2 抓取Linux 系统数据28415.3.3 抓取Nginx 监控数据 28615.3.4 抓取MySQL 监控数据 28815.3.5 数据存储 28915.3.6 告警 29015.4 总结 29115.5 练习 291?第16章 常用工具 29216.1 Git版本控制系统 29216.1.1 Git工作方式 29216.1.2 Gitflow工作流 29416.1.3 Git日志用法 29616.2 Linux常用软件 29716.2.1 安全Shell 29716.2.2 进程状态 29916.2.3 系统性能 30116.3 性能剖析 30316.3.1 调用路径图 30416.3.2 性能测试 30616.3.3 使用Pyflame生成火焰图 30816.4 总结 31016.5 练习 310 上一篇: 21世纪新形态教·学·练一体化规划丛书 Android Studio App边做边学 微课视频版 刘韬 2020年 下一篇: OpenStack设计与实现 第3版 英特尔严太研发有限公司 2020年版