图书目录

目    录

第 1 章  走进Django 5 1

1.1  Django 5的新特性 1

1.2  安装Django 5 4

1.3  创建项目 4

1.4  PyCharm创建项目 6

1.5  初试Django 5 7

1.5.1  Django的操作指令 8

1.5.2  开启Hello World之旅 9

1.6  调试Django项目 11

1.6.1  PyCharm断点调试 11

1.6.2  调试异常 13

1.7  本章小结 15

第 2 章 配置Django项目 16

2.1  基本配置信息 16

2.2  资源文件配置 18

2.2.1  资源路由——STATIC_URL 18

2.2.2  资源集合——STATICFILES_DIRS 19

2.2.3  资源部署——STATIC_ROOT 20

2.2.4  媒体资源——MEDIA 20

2.3  模板配置 21

2.4  数据库配置 22

2.4.1  mysqlclient连接MySQL 22

2.4.2  pymysql连接MySQL 24

2.4.3  多个数据库的连接方式 24

2.4.4  使用配置文件动态连接数据库 25

2.4.5  通过SSH隧道远程连接MySQL 27

2.5  中间件 29

2.6  本章小结 31

第 3 章 路由的编写规则与使用 32

3.1  路由定义规则 32

3.1.1  Django的路由定义 32

3.1.2  路由变量的设置 34

3.1.3  正则表达式的路由定义 36

3.2  命名空间与路由命名 37

3.2.1  命名空间namespace 37

3.2.2  路由命名name 39

3.3  路由的使用方式 40

3.3.1  在模板中使用路由 40

3.3.2  反向解析reverse与resolve 43

3.3.3  路由重定向 46

3.4  本章小结 47

第 4 章 简单直观的FBV视图 49

4.1  设置响应方式 49

4.1.1  返回响应内容 49

4.1.2  设置重定向 52

4.1.3  异常响应 54

4.1.4  文件下载功能 57

4.2  HTTP请求对象 60

4.2.1  获取请求信息 60

4.2.2  文件上传功能 64

4.2.3  Cookie实现反爬虫 68

4.2.4  请求头实现反爬虫 74

4.3  本章小结 77

第 5 章 更现代的CBV视图 78

5.1  数据显示视图 78

5.1.1  重定向视图RedirectView 78

5.1.2  基础视图TemplateView 80

5.1.3  列表视图ListView 83

5.1.4  详细视图DetailView 87

5.2  数据操作视图 89

5.2.1  表单视图FormView 90

5.2.2  新增视图CreateView 92

5.2.3  修改视图UpdateView 94

5.2.4  删除视图DeleteView 96

5.3  日期筛选视图 98

5.3.1  月份视图MonthArchiveView 100

5.3.2  周期视图WeekArchiveView 105

5.4  本章小结 107

第 6 章 深入理解模板 108

6.1  Django模板引擎 108

6.1.1  模板上下文 108

6.1.2  自定义标签 110

6.1.3  模板继承 113

6.1.4  自定义过滤器 115

6.2  Jinja2模板引擎 119

6.2.1  安装与配置 120

6.2.2  模板语法 123

6.2.3  自定义过滤器 125

6.3  本章小结 126

第 7 章 模型与数据库 127

7.1  模型定义与数据迁移 127

7.1.1  定义模型 127

7.1.2  开发个人的ORM框架 131

7.1.3  数据迁移 134

7.1.4  数据导入与导出 137

7.2  数据表关系 138

7.3  数据表操作 142

7.3.1  数据新增 143

7.3.2  数据修改 145

7.3.3  数据删除 146

7.3.4  数据查询 147

7.3.5  多表查询 150

7.3.6  执行SQL语句 154

7.3.7  数据库事务 156

7.4  多数据库的连接与使用 158

7.4.1  多数据库的连接 158

7.4.2  多数据库的使用 161

7.5  动态创建模型与数据表 163

7.6  MySQL分表功能 165

7.7  本章小结 169

第 8 章 表单与模型 170

8.1  初识表单 170

8.2  源码分析Form 173

8.3  源码分析ModelForm 180

8.4  在视图里使用Form 184

8.5  在视图里使用ModelForm 186

8.6  同一网页多个表单 188

8.7  一个表单多个按钮 191

8.8  表单的批量处理 192

8.9  多文件批量上传 196

8.10  本章小结 202

第 9 章 Admin后台系统 203

9.1  走进Admin 203

9.2  源码分析ModelAdmin 206

9.3  Admin首页设置 211

9.4  Admin的二次开发 212

9.4.1  函数get_readonly_fields() 213

9.4.2  设置字段样式 214

9.4.3  函数get_queryset() 215

9.4.4  函数formfield_for_foreignkey() 216

9.4.5  函数formfield_for_choice_field() 217

9.4.6  函数save_model() 218

9.4.7  数据批量操作 219

9.4.8  自定义Admin模板 220

9.4.9  自定义Admin后台系统 222

9.5  本章小结 227

第 10 章 Auth认证系统 228

10.1  内置User实现用户管理 228

10.2  发送邮件实现密码找回 236

10.3  模型User的扩展与使用 241

10.4  权限的设置与使用 248

10.5  自定义用户权限 250

10.6  设置网页的访问权限 251

10.7  用户组的设置与使用 257

10.8  本章小结 260

第 11 章 优化网站性能的Web程序 261

11.1  会话控制 261

11.1.1  会话的配置与操作 261

11.1.2  使用会话实现商品抢购 264

11.2  缓存机制 269

11.2.1  缓存的类型与配置 270

11.2.2  缓存的使用 272

11.3  CSRF防护 275

11.4  消息框架 278

11.4.1  源码分析消息框架 278

11.4.2  消息框架的使用 279

11.5  分页功能 283

11.5.1  源码分析分页功能 283

11.5.2  分页功能的使用 286

11.6  国际化和本地化 289

11.6.1  环境搭建与配置 290

11.6.2  设置国际化 291

11.6.3  设置本地化 292

11.7  单元测试 294

11.7.1  定义测试类 294

11.7.2  运行测试用例 300

11.8  自定义中间件 301

11.8.1  中间件的定义过程 301

11.8.2  中间件实现Cookie反爬虫 305

11.9  异步编程 307

11.9.1  使用多线程 307

11.9.2  启用ASGI服务 310

11.9.3  异步视图 310

11.9.4  异步与同步的转换 313

11.10  信号机制 314

11.10.1  内置信号 314

11.10.2  自定义信号 317

11.10.3  订单的创建与取消 320

11.11  本章小结 323

第 12 章 扩展网站功能的第三方应用 324

12.1  Django Rest Framework框架 324

12.1.1  DRF的安装与配置 324

12.1.2  序列化类Serializer 326

12.1.3  模型序列化类ModelSerializer 330

12.1.4  序列化的嵌套使用 332

12.2  验证码生成与使用 335

12.2.1  Django Simple Captcha的安装与配置 336

12.2.2  使用验证码实现用户登录 338

12.3  站内搜索引擎 342

12.3.1  Django Haystack的安装与配置 342

12.3.2  使用搜索引擎实现产品搜索 345

12.4  第三方网站实现用户注册 349

12.4.1  Social-Auth-App-Django的安装与配置 350

12.4.2  微博账号实现用户注册 353

12.5  异步任务和定时任务 355

12.5.1  Celery的安装与配置 355

12.5.2  异步任务 357

12.5.3  定时任务 359

12.6  即时通信——在线聊天 361

12.6.1  Channels的安装与配置 362

12.6.2  Web在线聊天功能 365

12.7  本章小结 368

第 13 章 博客系统的设计与实现 370

13.1  项目设计与配置 370

13.1.1  项目架构设计 373

13.1.2  功能配置 374

13.1.3  数据表架构设计 376

13.1.4  定义路由列表 379

13.1.5  编写共用模板 379

13.2  注册与登录 382

13.3  博主资料信息 387

13.4  图片墙功能 388

13.5  留言板功能 391

13.6  文章列表 394

13.7  文章正文内容 397

13.8  Admin后台系统 400

13.8.1  模型的数据管理 401

13.8.2  自定义Admin的登录页面 404

13.8.3  Django CKEditor生成文章编辑器 406

13.9  测试与部署 409

13.9.1  测试业务逻辑 409

13.9.2  上线部署 413

13.10  本章小结 414

第 14 章 音乐网站平台的设计与实现 415

14.1  项目设计与配置 415

14.1.1  项目架构设计 419

14.1.2  功能配置 420

14.1.3  数据表架构设计 422

14.1.4  定义路由列表 425

14.1.5  编写共用模板 426

14.2  网站首页 427

14.3  歌曲排行榜 432

14.4  歌曲搜索 436

14.5  歌曲播放与下载 440

14.6  歌曲点评 446

14.7  注册与登录 451

14.8  用户中心 455

14.9  Admin后台系统 459

14.10  自定义异常页面 461

14.11  部署与运行 463

14.11.1  上线部署 463

14.11.2  网站试运行 464

14.12  本章小结 465

第 15 章 基于前后端分离与微服务架构的网站开发 466

15.1  Vue开发用户界面 466

15.1.1  Vue开发产品信息页 466

15.1.2  Vue发送AJAX请求 469

15.2  Django开发API接口 470

15.2.1  简化Django内置功能 470

15.2.2  设置跨域访问 471

15.2.3  使用路由视图开发API接口 473

15.2.4  DRF框架开发API接口 475

15.3  微服务架构 476

15.3.1  微服务实现原理 477

15.3.2  功能拆分 479

15.3.3  设计API网关 483

15.3.4  调试与运行 485

15.4  JWT认证 486

15.4.1  认识JWT 487

15.4.2  DRF的JWT 487

15.5  微服务注册与发现 495

15.5.1  常用的服务注册与发现框架 495

15.5.2  Consul的安装与接口 496

15.5.3  Django与Consul的交互 499

15.5.4  服务的运行与部署 505

15.5.5  服务的负载均衡 508

15.5.6  Django与Consul部署配置 508

15.6  本章小结 510

第 16 章 项目上线部署 511

16.1  基于Windows的项目部署 511

16.1.1  安装IIS服务器 511

16.1.2  创建项目站点 512

16.1.3  配置静态资源 514

16.2  基于Docker的项目部署 515

16.2.1  安装Docker 515

16.2.2  Docker常用指令 517

16.2.3  安装MySQL 520

16.2.4  使用Docker Compose部署 523

16.3  本章小结 530