第1篇 开发工具及框架概述
第1章 Django概述 2
1.1 Web基础 2
1.1.1 Web发展 2
1.1.2 网络协议架构 3
1.1.3 应用软件架构 4
1.1.4 第一个Web程序 6
1.2 Django简介 7
1.2.1 MVC和MVT 8
1.2.2 Django 2.x新特性 10
1.2.3 Django的安装 12
1.2.4 安装验证 13
1.3 入门程序开发 13
1.3.1 创建项目 14
1.3.2 数据库同步 14
1.3.3 创建管理用户 15
1.3.4 访问测试 15
1.4 项目实战:博客开发 17
1.4.1 项目概述 17
1.4.2 项目创建初始化 17
1.4.3 数据模型定义 18
1.4.4 数据库同步配置 19
1.4.5 后台管理配置 20
1.4.6 项目基本配置 22
1.4.7 添加网页模板 24
1.4.8 视图处理函数 26
1.4.9 路由配置关联 27
1.4.10 软件运行测试 29
1.5 本章小结 30
第2章 Django数据模型与数据库 31
2.1 项目中的数据模型 31
2.1.1 模型类 31
2.1.2 字段限定规则 33
2.1.3 属性字段类型 36
2.1.4 索引操作 42
2.1.5 元数据选项 43
2.2 数据库处理 47
2.2.1 数据库连接 47
2.2.2 模型数据操作命令 50
2.2.3 数据库同步问题简述 53
2.2.4 数据模型增删改查 54
2.3 数据模型关联处理 56
2.3.1 什么是模型关联 56
2.3.2 一对多关联 57
2.3.3 一对一关联 60
2.3.4 多对多关联 62
2.3.5 自关联 64
2.4 数据查询操作 65
2.4.1 模型数据基本查询 65
2.4.2 模型数据条件查询 67
2.4.3 Q、F对象 68
2.4.4 模型操作关联查询 70
2.4.5 自定义SQL语句查询 71
2.5 数据库事务管理 72
2.5.1 Django中的事务管理 72
2.5.2 事务管理操作 73
2.6 本章小结 74
第3章 视图模板 75
3.1 视图模板概述 75
3.2 路由 76
3.2.1 路由概述 76
3.2.2 路由对象 77
3.2.3 路由级联包含 78
3.2.4 路由中的正则匹配 79
3.2.5 路由传递位置参数 80
3.2.6 路由路径转换器 82
3.2.7 路由反向解析 84
3.2.8 路由指定错误页面 85
3.3 视图处理函数 88
3.3.1 视图处理函数的声明和规范 88
3.3.2 数据响应快捷处理方式 89
3.3.3 视图相关装饰器 93
3.3.4 请求对象和响应对象 94
3.3.5 案例开发 97
3.4 模板语法 104
3.4.1 模板语法基础 105
3.4.2 常见的模板标签操作 106
3.4.3 常见的过滤器操作 109
3.4.4 模板高级操作:模板继承 112
3.4.5 案例开发:博客网页数据渲染 115
3.5 静态文件处理 121
3.5.1 项目开发架构规范 121
3.5.2 静态文件配置 122
3.5.3 子项目的静态文件配置 124
3.5.4 案例开发:完善博客项目的网页视图 126
3.6 自定义模板标签和模板过滤器 128
3.6.1 项目准备 129
3.6.2 自定义模板过滤器 130
3.6.3 自定义模板标签 132
3.7 本章小结 135
第4章 表单处理 136
4.1 表单概述 136
4.1.1 普通表单处理 137
4.1.2 GET参数处理 139
4.1.3 POST参数处理 140
4.1.4 跨站请求伪造 142
4.1.5 文件上传 144
4.2 基于Form的表单封装 149
4.2.1 表单基本操作 149
4.2.2 限定属性和字段描述 152
4.2.3 表单视图操作 156
4.3 基于ModelForm的高级表单 160
4.3.1 ModelForm概述 160
4.3.2 ModelForm字段属性 162
4.3.3 Meta属性选项 164
4.3.4 ModelForm中的数据提交 166
4.3.5 ModelForm中的数据初始化 167
4.3.6 ModelForm中的类型关联关系 168
4.3.7 表单实例工厂 170
4.3.8 自定义验证规则 171
4.4 项目实例:表单重构 172
4.4.1 用户注册表单重构 173
4.4.2 用户登录表单重构 176
4.4.3 用户信息表单重构 179
4.4.4 发表文章表单重构 180
4.4.5 表单重构注意问题 183
4.5 本章小结 183
第2篇 典型模块开发
第5章 后台管理系统 186
5.1 后台管理系统基本操作 186
5.1.1 初始化管理平台 187
5.1.2 管理平台的基本操作 189
5.2 数据模型的注册和管理 191
5.3 数据模型自定义操作 193
5.3.1 数据模型注册 193
5.3.2 数据模型管理 194
5.3.3 后台管理系统操作 203
5.4 Xadmin管理平台 205
5.4.1 环境配置 205
5.4.2 系统主题配置管理 208
5.4.3 管理平台数据配置 209
5.4.4 项目数据配置管理 210
5.5 本章小结 211
第6章 缓存 212
6.1 关于网站性能优化的建议 212
6.1.1 前端优化 213
6.1.2 后端优化 215
6.1.3 再说缓存 217
6.1.4 缓存问题 218
6.2 Django中的缓存 221
6.2.1 基于开发调试的缓存配置 221
6.2.2 基于本地内存的缓存配置 222
6.2.3 基于文件的缓存配置 222
6.2.4 基于数据库的缓存配置 223
6.2.5 基于Memcached的缓存配置 223
6.2.6 基于Redis的缓存配置 224
6.2.7 数据缓存操作――全站缓存 225
6.2.8 数据缓存操作――视图缓存 227
6.2.9 数据缓存操作――模板缓存 228
6.2.10 数据缓存操作――低级缓存 228
6.2.11 数据缓存操作――分布式带来的问题 232
6.2.12 数据缓存操作――Vary header 232
6.3 项目实战:缓存操作 234
6.3.1 缓存环境搭建 234
6.3.2 配置缓存支持 236
6.3.3 网页视图缓存 236
6.3.4 视图模板缓存 237
6.3.5 数据更新场景下的缓存处理 238
6.4 本章小结 240
第7章 日志处理――必不可少的记录 241
7.1 历史信息管理――日志的重要性 241
7.2 软件开发先锋官――日志核心组件 243
7.2.1 记录器对象――logger 243
7.2.2 操作对象――handler 244
7.2.3 过滤器对象――filter 244
7.2.4 格式化对象――formatter 245
7.3 Django 2.x项目中的日志操作 246
7.3.1 日志基本操作语法 246
7.3.2 通过命名空间实现日志结构化管理 247
7.3.3 记录到控制台的日志配置规则 248
7.3.4 记录到文件的日志配置规则 249
7.3.5 Django中的日志模块API 251
7.3.6 Django中的默认日志配置 252
7.4 项目实战――日志记录 252
7.5 本章小结 256
第8章 Django 2.x扩展功能 257
8.1 Ajax异步数据交互 257
8.1.1 Ajax的底层JavaScript实现 259
8.1.2 Ajax jQuery实现 262
8.1.3 文章评论异步交互 264
8.2 Django邮件操作 268
8.2.1 Web中的邮件功能 269
8.2.2 Django中的邮件配置 269
8.2.3 邮件的发送 270
8.2.4 预防邮件头注入漏洞 273
8.2.5 EmailMessage 275
8.2.6 用户账号激活 279
8.3 数据查询分页 283
8.3.1 Django的数据分页模块 284
8.3.2 文章分页展示功能 286
8.4 站点地图 288
8.4.1 Django中的站点地图 288
8.4.2 项目实战:站点地图操作 292
8.5 权限认证 295
8.5.1 身份认证模块 295
8.5.2 权限管理架构 304
8.5.3 资源访问管理 306
8.6 本章小结 310
第9章 Django REST框架 311
9.1 面向接口编程概述 311
9.1.1 什么是接口 311
9.1.2 接口定义规范 312
9.1.3 接口编程应用 313
9.2 Django rest_framework 315
9.2.1 安装与配置 315
9.2.2 创建项目 316
9.2.3 数据序列化 317
9.2.4 视图操作 317
9.2.5 路由映射 318
9.2.6 分页配置 318
9.2.7 数据访问测试 318
9.3 数据序列化 320
9.3.1 项目初始化 320
9.3.2 自定义数据模型 321
9.3.3 序列化组件操作 321
9.3.4 视图处理组件 322
9.3.5 数据接口测试 324
9.3.6 数据接口测试工具 324
9.4 请求和响应 326
9.4.1 请求对象和响应对象 326
9.4.2 视图渲染 326
9.4.3 业务处理 327
9.4.4 请求数据格式化 328
9.5 CBV构建 329
9.5.1 基于类型的视图组件构建 329
9.5.2 基于类型的路由完善 330
9.5.3 基于类型的视图功能扩展 331
9.5.4 基于类型的视图功能封装 333
9.6 身份认证和权限管理 334
9.6.1 创建基础项目 334
9.6.2 权限限制 337
9.6.3 身份认证API 338
9.6.4 自定义认证权限 340
9.7 规范构建数据接口 341
9.8 视图集及路由配置 344
9.9 本章小结 346
第3篇 项目实战
第10章 项目实战――社区交流平台 348
10.1 项目开发流程 348
10.1.1 前后端耦合开发模式 348
10.1.2 前后端分离开发模式 349
10.2 需求分析 350
10.2.1 用户模块 351
10.2.2 文章模块 353
10.2.3 评论模块 353
10.2.4 私信模块 354
10.2.5 工具模块 355
10.3 详细设计 355
10.3.1 系统数据模型设计 355
10.3.2 用户模块功能流程设计 357
10.3.3 文章模块功能流程设计 359
10.3.4 评论模块功能流程设计 360
10.3.5 私信模块功能流程设计 360
10.3.6 辅助功能 361
10.4 开发与测试 361
10.4.1 用户模块功能开发 362
10.4.2 文章模块功能开发 379
10.4.3 评论模块功能开发 391
10.4.4 私信模块功能开发 394
10.4.5 辅助功能开发 396
10.5 云服务器项目部署 400
10.5.1 云服务器的配置选型 400
10.5.2 服务器环境初始化 401
10.5.3 项目远程部署概述 402
10.5.4 项目部署和备案管理 403
10.6 本章小结 407
第11章 项目实战――图书管理系统 408
11.1 项目需求分析及接口规范定义 408
11.1.1 项目环境及技术选型 408
11.1.2 需求分析:用例分析 409
11.1.3 详细设计:流程设计 411
11.2 基于Vue.js的前端项目构建 414
11.2.1 项目初始化结构 414
11.2.2 项目结构完善及路由分析 417
11.2.3 图书管理员及普通会员登录功能 421
11.2.4 图书信息查询界面设计及路由分析 427
11.3 基于Django的后端项目构建 432
11.3.1 项目初始化结构 432
11.3.2 数据类型定义 433
11.3.3 序列化数据接口开发 435
11.3.4 用户查询接口 436
11.3.5 用户登录接口 438
11.3.6 图书查询接口 439
11.3.7 图书存放区域查询接口 442
11.3.8 图书借阅处理接口重构 444
11.4 业务功能联调 446
11.4.1 图书检索功能调测 447
11.4.2 用户登录功能调测 450
11.4.3 JWT认证 455
11.4.4 图书借阅功能调测 458
11.5 本章小结 460