序(一)
序(二)
前言
第1篇 基础知识
第1章 Django简介3
1.1 Django基本介绍3
1.2 Django发布情况4
1.3 Django的MVT架构简介5
1.3.1 MVC模式5
1.3.2 Django MVT模式5
1.4 Django和主流Web框架对比6
1.5 开发环境选择6
1.5.1 Windows平台7
1.5.2 Mac平台7
1.5.3 Linux平台8
第2章 掌握必要的基础知识 9
2.1 Web开发需要什么基础知识9
2.2 Python语言入门10
2.2.1 Python语言简介11
2.2.2 执行Python代码的方式11
2.2.3 Python中的缩进格式12
2.2.4 常见的运算符13
2.2.5 数据类型14
2.2.6 字符串14
2.2.7 列表15
2.2.8 元组19
2.2.9 字典19
2.2.10 集合21
2.2.11 数据类型的转换22
2.2.12 常见数据结构操作的时间复杂度23
2.2.13 选择语句与循环语句26
2.2.14 关于模块27
2.2.15 Python中的函数28
2.2.16 Python中的类30
2.2.17 命令行参数32
2.2.18 引用和复制一个对象32
2.2.19 常用内置函数33
2.2.20 常用模块的功能35
2.3 正则表达式37
2.3.1 正则表达式中的元字符37
2.3.2 正则模块的核心函数39
2.3.3 理解贪婪与非贪婪41
2.3.4 正则表达式中的Flag42
2.4 HTTP协议的基础知识43
2.5 路径与相对路径47
2.6 Python中的字符串编码48
第3章 Django初步体验51
3.1 Django的请求和响应51
3.2 Django的模型和admin站点52
3.2.1 新建blog应用53
3.2.2 修改项目设置53
3.2.3 编写模型代码54
3.2.4 体验admin站点55
3.2.5 对admin站点进行简单定制58
3.3 初识 Django QuerySet62
3.3.1 基本查询63
3.3.2 添加记录64
3.3.3 修改记录65
3.3.4 删除记录65
3.4 Django的视图和函数65
第2篇 实践学习一:从一个简单的资源管理做起
第4章 需求的确定和项目排期规划75
4.1 产品定位75
4.2 功能需求的确定76
4.3 产品设计的确定77
4.4 产品实现的排期77
第5章 数据模型的设计与实现79
5.1 模型简介79
5.2 模型的数据字段79
5.2.1 数值类字段80
5.2.2 字符类字段80
5.2.3 布尔类字段81
5.2.4 日期时间类字段81
5.2.5 文件类字段82
5.2.6 IP地址类字段82
5.2.7 二进制类字段83
5.3 模型关系字段83
5.3.1 外键字段83
5.3.2 多对多字段83
5.3.3 一对一字段84
5.4 字段参数84
5.5 图书管理系统模型的实现85
5.6 数据库查询接口简介88
5.6.1 创建对象89
5.6.2 修改对象89
5.6.3 查找对象90
5.6.4 删除对象91
第6章 网站的入口——URL设计92
6.1 URL设计简介92
6.2 URL反转简介94
第7章 页面和功能的实现96
7.1 基本页面的实现96
7.2 Django模板语言简介101
7.3 Django用户认证和鉴权简介106
7.4 用户系统的实现109
7.4.1 用户注册功能的实现109
7.4.2 用户登录功能的实现115
7.4.3 用户注销功能的实现117
7.4.4 修改密码功能的实现118
7.5 图书管理相关功能的实现124
7.5.1 图书添加功能的实现124
7.5.2 图片上传功能的实现128
7.5.3 图书列表功能的实现131
7.5.4 图书详情功能的实现136
第3篇 实践学习二:从博客做起
第8章 个人博客网站的规划和设计141
8.1 功能需求的设计141
8.2 模块划分143
第9章 Django通用视图简介144
9.1 TemplateView简介144
9.2 RedirectView简介145
9.3 DetailView简介145
9.4 ListView简介146
9.5 FormView简介147
9.6 CreateView简介147
9.7 UpdateView简介147
9.8 DeleteView简介148
第10章 基本页面框架的实现149
10.1 前端页面框架的实现149
10.2 后端页面框架的实现154
第11章 用户系统和认证模块的实现158
11.1 同步数据库文件158
11.2 用户登录功能的实现158
11.3 用户注销功能的实现164
第12章 导航栏组件的实现165
12.1 导航栏数据模型的设计165
12.2 导航栏前端组件的实现166
12.3 导航栏管理页面的制作168
第13章 友情链接组件的实现180
13.1 友情链接数据模型的设计180
13.2 友情链接前端组件的实现181
13.3 友情链接管理页面的实现182
第14章 “碎碎念”组件的实现191
14.1 “碎碎念”数据模型的设计191
14.2 “碎碎念”前端组件的实现192
14.3 “碎碎念”组件管理页面的实现193
14.4 “碎碎念”前端TimeLine页面的实现205
第15章 文章组件的实现209
15.1 文章数据模型的设计209
15.2 文章分类前端组件的实现210
15.3 文章分类管理的页面212
15.4 文章管理页面218
15.5 文章前端组件的实现234
第4篇 使用Django开发API
第16章 序列化241
16.1 搭建一个新的开发环境241
16.2 开始编写Web API241
16.3 创建模型242
16.4 创建一个序列化类243
16.5 了解Serializers的工作方式244
16.6 使用ModelSerializers246
16.7 使用序列化器编写常规的视图247
16.8 测试Web API249
第17章 请求和响应251
17.1 Request对象251
17.2 Response对象251
17.3 响应状态码251
17.4 包装 API 视图252
17.5 使用新组件编写视图252
17.6 给URLs添加可选格式化后缀254
17.7 它看起来怎么样255
17.8 API可浏览性257
第18章 基于类的视图258
18.1 使用类视图重写API258
18.2 使用Mixins混入类260
18.3 使用通用类视图261
第19章 认证和权限263
19.1 模型类添加一些信息263
19.2 添加用户相关的API264
19.3 将Snippets和用户关联265
19.4 给API添加只读用户字段266
19.5 给视图添加必要的权限267
19.6 给可浏览API添加登录功能267
19.7 实现级别的权限268
19.8 通过API实现认证269
19.9 认证和权限总结270
第20章 关系和超链接API271
20.1 为API创建根视图271
20.2 添加高亮显示功能的视图271
20.3 链接API272
20.4 确保URL都命名274
20.5 添加分页功能275
20.6 页面上浏览API275
第21章 ViewSets和Routers276
21.1 使用ViewSets进行重构276
21.2 显式将URL和ViewSets绑定起来278
21.3 使用 Routers 自动化URL配置279
21.4 使用视图、视图集的利弊279
第5篇 Django系统运维
第22章 部署基础知识283
22.1 部署基础知识储备283
22.2 Linux进程分析284
22.3 Linux端口分析287
第23章 部署上线290
23.1 Django部署前的准备290
23.1.1 运行开发服务器进行测试290
23.1.2 安装Nginx290
23.2 使用uWSGI部署292
23.2.1 安装uWSGI软件292
23.2.2 使用 uWSGI运行项目292
23.3 使用supervisor管理进程293
23.3.1 安装supervisor软件包293
23.3.2 supervisor配置293
23.3.3 supervisor使用简介294
23.4 配置Nginx295
第24章 其他常见功能297
24.1 Django中间件297
24.1.1 工作原理297
24.1.2 激活中间件299
24.1.3 编写中间件300
24.1.4 其他中间件钩子301
24.2 Django信号简介303
24.2.1 信号机制简介303
24.2.2 监听信号304
24.2.3 自定义信号306
24.2.4 发送信号306
24.3 Django缓存框架308
24.3.1 缓存机制简介308
24.3.2 设置缓存308
24.3.3 网站缓存311
24.3.4 视图缓存311
24.3.5 模板分片缓存312
24.3.6 低层次缓存接口312
24.4 Django日志314
24.4.1 Django日志简介314
24.4.2 Django日志扩展314
24.4.3 Django默认日志配置315
24.5 Django发送邮件316
24.6 Django分页316