Django实战 Python Web典型模块与项目开发
定 价:108 元
- 作者:张晓
- 出版时间:2020/10/1
- ISBN:9787115540201
- 出 版 社:人民邮电出版社
- 中图法分类:TP311.561
- 页码:466
- 纸张:
- 版次:01
- 开本:16开
本书结合样例,介绍 Django 的基础知识、主要模块的开发以及权限管理等高级内容,并且通过图书管理系统、博客系统、车费管理系统 3 个项目的开发实战,使读者既能掌握 Django 的重要开发技术,又能对这些知识在项目中的综合应用有深入了解。
本书共有 16 章,分为 3 个篇章,准备篇介绍了 Web 框架以及 Django 的基本知识;入门篇详细讲解了路由系统、模板系统等5 个主要模块的开发过程,并通过图书管理系统和博客系统的开发综合应用这些知识;进阶篇介绍了 AJAX、中间件、权限管理等内容,并完成了车费管理系统的项目开发。
本书讲解详细,内容通俗易懂,案例丰富,适合 Python 进阶读者或 Django 开发入门读者阅读,也可以作为 Web 开发人员或编程爱好者的自学参考。
1.内容实用:凝聚作者多年开发经验,深入浅出剖析技术细节;
2.系统全面:从基础知识、典型模块到项目开发,详解Django开发;
3.案例丰富:面向不同应用场景,逐步实现多个开发案例。
张晓
山东能源集团(世界 500 强)信息管理员,软件开发工程师。曾独立开发物流管理、机房运维管理、机关考勤管理、物业管理、车费管理等多个应用系统;并规划设计与实施了数据中心、私有云项目建设;此外在数据仓库、BI 分析、门户网站建设方面也有丰富的实战经验。
第 一篇 准备篇
第 1章 Python 和Web 开发框架 2
1.1 Python 简介 3
1.2 Web 开发框架基本知识 3
1.2.1 Web 应用本质 3
1.2.2 Web 开发框架核心功能 5
1.2.3 HTTP 简单介绍 8
1.2.4 HTTP 请求消息格式 9
1.2.5 HTTP 响应消息格式 9
1.3 Python Web 开发框架 10
1.4 小结 11
第 2章 初识Django 12
2.1 Django 安装 13
2.1.1 安装Python 13
2.1.2 安装Python 虚拟环境 14
2.1.3 安装Django 14
2.1.4 测试安装效果 15
2.2 Django 基本知识 15
2.2.1 Django 的开发优势 15
2.2.2 Django 的MTV 设计模式简介 16
2.2.3 Django 的其他功能 18
2.2.4 Django 的主要文件 18
2.3 Django 基本开发流程 19
2.3.1 部署开发环境 19
2.3.2 创建项目 19
2.3.3 创建应用程序 20
2.3.4 编写业务逻辑代码 20
2.3.5 建立URL 与视图函数的对应关系 20
2.3.6 动态加载HTML 页面 21
2.3.7 配置静态文件存放位置 23
2.3.8 连接数据库 27
2.3.9 Django 后台管理 29
2.4 小结 30
第二篇 入门篇
第3 章 Django ORM 32
3.1 Django ORM 的特点 33
3.1.1 Django ORM 的优点 33
3.1.2 Django ORM 的缺点 33
3.1.3 Django ORM 的模式特征 33
3.2 Django ORM 的用法 34
3.2.1 数据库连接 34
3.2.2 创建数据模型 34
3.2.3 Django ORM 字段 35
3.2.4 Django ORM 基本数据操作 37
3.2.5 Django ORM 数据操作常用函数 38
3.3 样例1:数据库表操作 40
3.3.1 准备工作 40
3.3.2 建立路由与视图函数对应关系 42
3.3.3 编写视图函数 44
3.3.4 employee 数据模型的操作 57
3.4 Django ORM 跨表操作 65
3.4.1 与外键有关的跨表操作 65
3.4.2 与多对多键有关的跨表操作 69
3.4.3 与一对一键有关的跨表操作 71
3.5 Django ORM 聚合与分组查询 73
3.5.1 聚合查询 73
3.5.2 分组查询 74
3.6 Django ORM 中的F 和Q
函数 75
3.6.1 F 函数 75
3.6.2 Q 函数 76
3.7 小结 76
第4 章 Django 路由系统 77
4.1 路由系统基本配置 78
4.1.1 路由系统URL 基本格式 78
4.1.2 path()的URL 参数 79
4.1.3 re_path()函数 79
4.1.4 路由分发 80
4.1.5 路由命名 81
4.1.6 路由命名空间 82
4.2 样例2:路由系统开发 83
4.2.1 路由系统应用的简单流程 83
4.2.2 带参数的路由应用 86
4.2.3 带参数的命名URL 配置 87
4.3 小结 89
第5 章 Django 视图 90
5.1 样例3:视图函数简单介绍 91
5.1.1 视图样例 91
5.1.2 HttpRequest 对象和HttpResponse
对象 93
5.1.3 视图函数响应“三剑客” 96
5.2 基于类的通用视图 99
5.2.1 TemplateView 类通用视图 100
5.2.2 ListView 类通用视图 101
5.2.3 DetailView 类通用视图 104
5.3 样例4:Django 视图应用开发 107
5.3.1 准备工作 107
5.3.2 URL 配置 109
5.3.3 用户登录 110
5.3.4 列表页面 114
5.3.5 人员增加页面 116
5.3.6 人员修改页面 120
5.3.7 人员删除 122
5.4 小结 123
第6 章 Django 模板系统 124
6.1 Django 模板基本语法 125
6.1.1 模板文件 125
6.1.2 模板变量 126
6.1.3 模板注释 129
6.1.4 过滤器 129
6.1.5 模板标签 131
6.2 母版和继承 137
6.2.1 母版 137
6.2.2 继承 138
6.3 组件 139
6.4 样例5:模板开发 139
6.4.1 准备工作 140
6.4.2 Bootstrap 用法简介 140
6.4.3 Font Awesome 用法简介 142
6.4.4 生成母版base.html 143
6.4.5 编写index.html 页面 145
6.4.6 员工相关页面美化 147
6.4.7 其他页面美化 156
6.5 小结 158
第7 章 Django Form 组件 159
7.1 前期环境准备 160
7.1.1 Django Form 表单的主要功能 160
7.1.2 Django Form 简单开发流程介绍 160
7.1.3 编写Django Form 对象类 160
7.1.4 建立URL 与视图函数对应关系 161
7.1.5 视图函数 161
7.1.6 页面代码 162
7.1.7 运行测试 163
7.2 Django Form 字段 163
7.2.1 Django Form 字段属性 164
7.2.2 Django Form 常用字段 166
7.3 样例6:Django Form 组件
开发 167
7.3.1 开发准备 167
7.3.2 登录页面 171
7.3.3 列表页面 176
7.3.4 账号增加 180
7.3.5 账号修改 187
7.4 Django ModelForm 组件 193
7.4.1 Django ModelForm 定义 193
7.4.2 Django ModelForm 主要方法 194
7.5 样例7:Django ModelForm
开发 195
7.5.1 ModelForm 表单类 195
7.5.2 列表页面 197
7.5.3 账号增加 198
7.5.4 账号修改 199
7.5.5 账号删除 200
7.6 小结 200
第8 章 图书管理系统开发 201
8.1 系统数据库建立 202
8.1.1 建立应用程序 202
8.1.2 建立数据库表 202
8.1.3 建立系统超级用户 205
8.1.4 数据模型注册 205
8.1.5 运行程序 206
8.1.6 附加说明 206
8.2 图书管理系统完善 207
8.2.1 部分配置 207
8.2.2 页面功能完善 208
8.2.3 批处理功能 214
8.2.4 权限管理 215
8.3 小结 216
第9 章 博客系统开发 217
9.1 创建博客系统 218
9.1.1 开发环境初步配置 218
9.1.2 安装django-ckeditor 218
9.1.3 安装pillow 218
9.1.4 创建项目 218
9.1.5 注册博客应用程序 220
9.1.6 数据库选择 220
9.2 博客系统应用程序开发 220
9.2.1 项目数据库表结构设计 220
9.2.2 CKEditor 富文本编辑器相关知识
介绍 226
9.2.3 生成数据库表 233
9.2.4 建立超级用户 233
9.2.5 在管理后台注册数据模型 233
9.3 用户注册 234
9.3.1 URL 配置 234
9.3.2 用户注册Form 表单 235
9.3.3 用户注册视图函数 239
9.3.4 用户注册页面 241
9.4 用户登录 247
9.4.1 URL 配置 247
9.4.2 用户登录视图函数 247
9.4.3 用户登录页面 248
9.5 博客系统的母版 249
9.5.1 母版HTML 文件 250
9.5.2 项目的自定义标签 257
9.5.3 母版中的4 个栏目的链接功能 258
9.5.4 母版其他功能 262
9.6 博客系统首页 264
9.6.1 博客首页通用视图函数 264
9.6.2 博客首页模板文件 268
9.6.3 头像链接功能 271
9.7 博客系统检索功能 272
9.7.1 安装Django Haystack 273
9.7.2 更改Django Haystack 分词器 273
9.7.3 配置Django Haystack 273
9.7.4 建立索引类 274
9.7.5 URL 配置 275
9.7.6 创建search.html 276
9.7.7 创建索引文件 278
9.8 文章发布 279
9.9 文章评论 279
9.9.1 创建评论应用程序 279
9.9.2 评论系统的数据模型 280
9.9.3 文章评论表单 280
9.9.4 文章评论URL 配置 281
9.9.5 文章评论视图函数 281
9.9.6 文章评论模板 283
9.9.7 文章评论部分页面 284
9.10 文章详细页面 285
9.10.1 文章详细页面URL 配置 285
9.10.2 文章详细页面视图 285
9.10.3 文章详细页面模板文件 286
9.10.4 文章详细页面显示 289
9.11 小结 289
第三篇 进阶篇
第 10 章 分页组件的设计 292
10.1 样例8:普通分页编写 293
10.1.1 URL 配置 293
10.1.2 数据模型 293
10.1.3 视图函数 294
10.2 分页组件 298
10.2.1 分页组件 299
10.2.2 调用分页组件 302
10.3 小结 303
第 11 章 Django 调用AJAX
编程 304
11.1 AJAX 基本知识 305
11.1.1 JSON 基本知识 305
11.1.2 AJAX 简单使用 307
11.2 样例9:AJAX 应用开发 311
11.2.1 URL 配置 311
11.2.2 数据模型 311
11.2.3 员工列表及记录删除 311
11.2.4 员工信息增加 315
11.3 小结 321
第 12 章 Django 中间件开发 322
12.1 Django 中间件基本知识 323
12.1.1 中间件配置 323
12.1.2 中间件的方法 323
12.1.3 中间件执行流程 325
12.2 样例10:Django 中间件
编程 327
12.2.1 URL 配置 327
12.2.2 视图函数 328
12.2.3 注册自定义中间件 329
12.2.4 测试中间件 330
12.3 小结 331
第 13 章 基于Django 认证系统
的权限管理开发 332
13.1 Django 认证系统简介 333
13.1.1 认证系统基本知识 333
13.1.2 默认权限设置 333
13.1.3 创建自定义权限的方法 334
13.2 基于Django 认证系统的权限
管理开发 335
13.2.1 创建能增加权限的数据模型 335
13.2.2 注册数据模型 336
13.3 建立测试系统 336
13.3.1 测试系统视图函数 337
13.3.2 测试系统母版 338
13.3.3 用户列表页面 339
13.3.4 测试系统URL 配置 340
13.4 权限梳理与分配 341
13.4.1 权限记录整理 341
13.4.2 权限记录输入 342
13.4.3 权限分配 342
13.4.4 测试系统 342
13.5 小结 343
第 14 章 Django 通用权限管理
设计 344
14.1 基于RBAC 的通用权限管理
实现 345
14.1.1 RBAC 权限管理模块文件目录
结构 345
14.1.2 数据库表结构设计 347
14.1.3 Role 表的构建 347
14.1.4 UserInfo 表的构建 348
14.1.5 Permission 表的构建 348
14.1.6 PermGroup 表的构建 350
14.1.7 Menu 表的构建 350
14.1.8 生成数据库表 351
14.1.9 补充说明 351
14.1.10 用户权限数据初始化配置 352
14.1.11 利用中间件验证用户权限 356
14.1.12 生成系统菜单所需数据 359
14.2 样例11:RBAC 权限管理在
项目中的应用 364
14.2.1 引入RBAC 权限管理的基本
流程 364
14.2.2 RBAC 权限管理模块部署到
新项目 364
14.2.3 复制及新建相关文件 364
14.2.4 配置参数 365
14.2.5 测试项目的结构 367
14.2.6 权限分配管理 375
14.3 小结 379
第 15 章 基于权限管理的车费
管理系统开发 380
15.1 开发准备 381
15.1.1 生成项目和应用 381
15.1.2 导入RBAC 模块 382
15.2 建立数据模型 383
15.2.1 数据模型设计 383
15.2.2 生成数据库表 385
15.3 用户登录和注销 385
15.3.1 用户登录 385
15.3.2 用户注销 387
15.4 建立母版文件 388
15.4.1 母版文件 388
15.4.2 页面头部 390
15.4.3 首页 390
15.5 车辆信息维护 391
15.5.1 URL 配置 391
15.5.2 车辆信息查看 392
15.5.3 车辆信息增加 393
15.5.4 车辆信息修改 395
15.5.5 车辆信息删除 397
15.6 部门信息维护 397
15.6.1 URL 配置 397
15.6.2 部门信息列表 398
15.6.3 部门信息增加 399
15.6.4 部门信息修改 400
15.6.5 部门信息删除 402
15.7 用户分配 402
15.7.1 URL 配置 402
15.7.2 用户列表 402
15.7.3 用户分配到部门 404
15.8 车费上报 407
15.8.1 URL 配置 407
15.8.2 车费信息列表 407
15.8.3 车费信息增加 412
15.8.4 车费信息修改 420
15.9 车费审批 427
15.9.1 URL 配置 427
15.9.2 引入分页组件 427
15.9.3 车费审批功能 427
15.9.4 取消审批功能 437
15.10 车费统计 439
15.10.1 URL 配置 439
15.10.2 车费统计视图 439
15.11 增加权限管理 445
15.11.1 权限梳理 445
15.11.2 权限数据输入及权限分配 447
15.11.3 权限管理源代码调整 447
15.11.4 添加URL 白名单 448
15.11.5 视图函数代码调整 449
15.11.6 视图函数login()代码调整 449
15.11.7 base.html 代码调整 449
15.11.8 页面代码调整 451
15.11.9 权限测试 452
15.12 小结 452
第 16 章 应用项目部署 453
16.1 准备工作 454
16.1.1 基本知识 454
16.1.2 安装环境简介 455
16.1.3 准备工作 455
16.2 安装MySQL 数据库 456
16.2.1 安装MySQL 数据库 456
16.2.2 配置MySQL 数据库 457
16.2.3 生成项目数据库 458
16.3 Python 环境部署 458
16.3.1 关于Python 458
16.3.2 升级pip 459
16.4 安装uWSGI 服务器 459
16.4.1 安装uWSGI 459
16.4.2 测试uWSGI 460
16.5 安装Nginx 服务器 461
16.5.1 安装Nginx 461
16.5.2 测试Nginx 461
16.6 项目部署前的工作 461
16.6.1 修改项目配置 461
16.6.2 服务器上的目录设置 462
16.6.3 项目代码上传 462
16.6.4 安装虚拟环境 463
16.6.5 在服务器上配置项目 463
16.7 配置Nginx 和uWSGI 464
16.7.1 配置Nginx 464
16.7.2 配置uWSGI 465
16.8 测试 466
16.9 小结 466