第1篇 基础知识 3
第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正则表达式中的Flag 42
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 QuerySet 62
3.3.1基本查询 63
3.3.2添加记录 64
3.3.3修改记录 65
3.3.4删除记录 65
3.4 Django的视图和函函数 65
第2篇 实践学习一:从一个简单的资源管理做起 75
第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.2Django模板语言简介 101
7.3Django用户认证和鉴权简介 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篇 实践学习二:从博客做起 141
第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 241
第16章 序列化 241
16.1 搭建一个新的开发环境 241
16.2开始编写Web API 241
16.3创建模型 242
16.4创建一个序列化类 243
16.5了解Serializers的工作方式 244
16.6使用ModelSerializers 246
16.7使用序列化器编写常规的视图 247
16.8测试Web API 249
第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使用类视图重写API 258
18.2使用Mixins混入类 260
18.3使用通用类视图 261
第19章 认证和权限 263
19.1模型类添加一些信息 263
19.2添加用户相关的API 264
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章 关系和超链接API 271
20.1为API创建根视图 271
20.2添加高亮显示功能的视图 271
20.3链接API 272
20.4确保URL都命名 274
20.5添加分页功能 275
20.6页面上浏览API 275
第21章 ViewSets和Routers 276
21.1使用ViewSets进行重构 276
21.2显式将URL和ViewSets绑定起来 278
21.3使用Routers自动化URL配置 279
21.4使用视图、视图集的利弊 279
第5篇Django系统运维 283
第22章 部署基础知识 283
22.1部署基础知识储备 283
22.2 Linux进程分析 284
22.3 Linux端口分析 287
第23章 部署上线 290
23.1Django部署前的准备 290
23.1.1运行开发服务器进行测试 290
23.1.2安装Nginx 290
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配置Nginx 295
第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