- 中国铁道出版社
- 9787113314125
- 2-1
- 531484
- 16开
- 2024-08
- 计算机类
- 本科
作者简介
内容简介
本书在 Windows 上基于 Python 3.12 与 Django 5.0 对 Django 框架相关的知识进行讲解,并以此为基础利用 Django 框架实现一个完整的电商平台。本书分为 12 章,其中第 1 章主要简单介绍 Django 框架,包括 Django 框架的安装,以及使用该框架创建 Django 项目;第 2 ~ 6 章介绍了使用 Django 框架的核心知识,包括路由系统、模型、模板、视图、身份验证系统;第 7 ~ 12 章从需求与前期准备着手,逐步实现完整的 Django Web 项目。
本书附有源代码、测试题、教学课件等资源,为帮助初学者更好地学习本书中的内容,还提供了在线答疑。
本书适合作为高等学校计算机相关专业 Django 框架课程或 Python 进阶课程的专用教材,也可供具有Python 语言基础的读者自学。
本书附有源代码、测试题、教学课件等资源,为帮助初学者更好地学习本书中的内容,还提供了在线答疑。
本书适合作为高等学校计算机相关专业 Django 框架课程或 Python 进阶课程的专用教材,也可供具有Python 语言基础的读者自学。
目录
第1章 Django概述 1
1.1 认识Django 1
1.2 安装Django 2
1.2.1 Django版本选择 2
1.2.2 创建虚拟Python环境 3
1.2.3 使用pip安装Django 5
1.3 创建第一个Django项目 6
1.3.1 新建Django项目 6
1.3.2 项目结构说明 8
1.3.3 运行开发服务器 8
1.3.4 Django项目配置 10
1.3.5 在项目中创建应用 12
1.4 Django之MTV模式 14
小结 15
习题 15
第2章 路由系统 17
2.1 认识路由系统 17
2.1.1 HTTP请求处理流程概述 18
2.1.2 URL配置 18
2.2 路由转换器 20
2.2.1 内置路由转换器 20
2.2.2 自定义路由转换器 20
2.3 使用正则表达式匹配URL 22
2.4 路由分发 24
2.5 向视图函数传递额外参数 26
2.6 URL模式命名与命名空间 27
2.6.1 URL模式命名 27
2.6.2 使用reverse()函数反向解析URL 28
2.6.3 应用的命名空间 29
2.6.4 实例命名空间 31
小结 33
习题 33
第3章 模型 35
3.1 定义与使用模型 35
3.2 模型的字段 39
3.2.1 字段类型 39
3.2.2 关系字段 41
3.2.3 字段的通用参数 43
3.3 模型的元属性 44
3.4 模型管理器 46
3.4.1 重命名管理器名称 46
3.4.2 自定义管理器 46
3.5 QuerySet对象 47
3.5.1 获取QuerySet对象 47
3.5.2 QuerySet对象的特性 48
3.6 数据的增删改查 49
3.7 F对象与Q对象 52
3.8 多表查询 53
3.9 执行原生SQL语句 56
小结 56
习题 57
第4章 模板 59
4.1 模板引擎与模板文件 59
4.2 模板文件的使用 60
4.3 模板语言 61
4.3.1 变量 62
4.3.2 过滤器 63
4.3.3 标签 66
4.3.4 自定义过滤器和标签 71
4.4 模板继承 77
4.5 Jinja2 79
小结 83
习题 83
第5章 视图 85
5.1 认识视图 85
5.2 请求对象 86
5.3 QueryDict对象 90
5.4 响应对象 91
5.4.1 HttpResponse类 91
5.4.2 HttpResponse的子类 94
5.5 生成响应的便捷函数 96
5.5.1 render()函数 96
5.5.2 redirect()函数 98
5.5.3 get_object_or_404()函数 99
5.5.4 get_list_or_404()函数 99
5.6 视图装饰器 99
5.7 类视图 100
5.8 通用视图 101
5.8.1 通用视图分类 101
5.8.2 通用显示视图与模型 101
5.8.3 修改查询集结果 101
5.8.4 添加额外的上下文对象 102
5.9 异步视图 102
小结 102
习题 102
第6章 身份验证系统 104
6.1 User对象 104
6.2 权限与权限管理 107
6.2.1 默认权限 108
6.2.2 权限管理 108
6.2.3 自定义权限 108
6.3 Web请求认证 108
6.3.1 用户登录与退出 108
6.3.2 限制用户访问 111
6.4 模板身份验证 114
6.5 自定义用户模型 114
6.6 状态保持 115
6.6.1 Cookie 115
6.6.2 Session 118
小结 122
习题 122
第7章 电商项目——前期准备 124
7.1 项目需求 124
7.2 模块归纳 133
7.3 项目开发模式与运行机制 134
7.4 项目创建和配置 135
7.4.1 创建项目 135
7.4.2 配置开发环境 135
7.4.3 配置Jinja2模板 136
7.4.4 配置MySQL数据库 138
7.4.5 配置Redis数据库 139
7.4.6 配置项目日志 140
7.4.7 配置前端静态文件 142
7.4.8 配置应用目录 143
小结 144
习题 144
第8章 电商项目——用户管理与验证 145
8.1 定义用户模型类 145
8.2 用户注册 147
8.2.1 用户注册逻辑分析 147
8.2.2 用户注册后端基础需求的实现 148
8.2.3 用户名与手机号唯一性校验 152
8.2.4 图形验证码 155
8.3 用户登录 158
8.3.1 使用用户名登录 158
8.3.2 使用手机号登录 160
8.3.3 状态保持 161
8.3.4 首页展示用户名 162
8.3.5 退出登录 164
8.4 用户中心 165
8.4.1 用户基本信息 165
8.4.2 添加邮箱 168
8.4.3 邮箱验证 169
8.4.4 省市区三级联动 175
8.4.5 新增与展示收货地址 180
8.4.6 设置默认地址与修改地址标题 186
8.4.7 修改与删除收货地址 188
8.4.8 修改登录密码 191
小结 192
习题 193
第9章 电商项目——商品数据的呈现 194
9.1 商品数据库表分析 194
9.2 导入商品数据 197
9.3 呈现首页数据 201
9.3.1 呈现首页商品分类 201
9.3.2 呈现首页商品广告 205
9.4 商品列表 207
9.4.1 商品列表页分析 207
9.4.2 呈现商品列表页数据 209
9.4.3 获取商品分类 213
9.4.4 列表页面包屑导航 216
9.4.5 列表页热销排行 217
9.5 商品搜索 220
9.5.1 准备搜索引擎 220
9.5.2 渲染商品搜索结果 223
9.5.3 搜索结果分页 224
9.6 商品详情 225
9.6.1 展示商品SKU信息 225
9.6.2 展示商品SKU规格 228
9.7 用户浏览记录 230
9.7.1 浏览记录存储方案 230
9.7.2 保存和查询浏览记录 232
小结 234
习题 234
第10章 电商项目——购物车 235
10.1 购物车数据存储方案 235
10.1.1 登录用户购物车数据存储方案 235
10.1.2 未登录用户购物车数据存储方案 236
10.2 购物车管理 238
10.2.1 购物车添加商品 238
10.2.2 展示购物车商品 242
10.2.3 修改购物车商品 244
10.2.4 删除购物车商品 247
10.2.5 全选购物车 249
10.2.6 合并购物车 251
10.3 展示购物车缩略信息 252
小结 255
习题 256
第11章 电商项目——订单 257
11.1 结算订单 257
11.1.1 接口定义 257
11.1.2 后端逻辑实现 258
11.1.3 前端页面渲染 262
11.2 提交订单 264
11.2.1 定义订单表模型 264
11.2.2 保存订单信息 266
11.2.3 呈现订单提交成功页面 269
11.3 基于事务的订单数据保存 271
11.3.1 Django中事务的使用 271
11.3.2 使用事务保存订单数据 271
11.4 基于乐观锁的并发下单 273
11.5 查看订单 276
小结 279
习题 279
第12章 电商项目——支付与评价 280
12.1 支付宝开放平台介绍 280
12.2 对接支付宝 280
12.2.1 支付信息配置 281
12.2.2 订单支付功能 285
12.2.3 保存订单支付结果 289
12.3 商品评价 291
12.3.1 评价订单商品 291
12.3.2 详情页展示商品评价 295
12.3.3 商品列表页展示评价数量 297
小结 297
习题 298
参考文献 299
1.1 认识Django 1
1.2 安装Django 2
1.2.1 Django版本选择 2
1.2.2 创建虚拟Python环境 3
1.2.3 使用pip安装Django 5
1.3 创建第一个Django项目 6
1.3.1 新建Django项目 6
1.3.2 项目结构说明 8
1.3.3 运行开发服务器 8
1.3.4 Django项目配置 10
1.3.5 在项目中创建应用 12
1.4 Django之MTV模式 14
小结 15
习题 15
第2章 路由系统 17
2.1 认识路由系统 17
2.1.1 HTTP请求处理流程概述 18
2.1.2 URL配置 18
2.2 路由转换器 20
2.2.1 内置路由转换器 20
2.2.2 自定义路由转换器 20
2.3 使用正则表达式匹配URL 22
2.4 路由分发 24
2.5 向视图函数传递额外参数 26
2.6 URL模式命名与命名空间 27
2.6.1 URL模式命名 27
2.6.2 使用reverse()函数反向解析URL 28
2.6.3 应用的命名空间 29
2.6.4 实例命名空间 31
小结 33
习题 33
第3章 模型 35
3.1 定义与使用模型 35
3.2 模型的字段 39
3.2.1 字段类型 39
3.2.2 关系字段 41
3.2.3 字段的通用参数 43
3.3 模型的元属性 44
3.4 模型管理器 46
3.4.1 重命名管理器名称 46
3.4.2 自定义管理器 46
3.5 QuerySet对象 47
3.5.1 获取QuerySet对象 47
3.5.2 QuerySet对象的特性 48
3.6 数据的增删改查 49
3.7 F对象与Q对象 52
3.8 多表查询 53
3.9 执行原生SQL语句 56
小结 56
习题 57
第4章 模板 59
4.1 模板引擎与模板文件 59
4.2 模板文件的使用 60
4.3 模板语言 61
4.3.1 变量 62
4.3.2 过滤器 63
4.3.3 标签 66
4.3.4 自定义过滤器和标签 71
4.4 模板继承 77
4.5 Jinja2 79
小结 83
习题 83
第5章 视图 85
5.1 认识视图 85
5.2 请求对象 86
5.3 QueryDict对象 90
5.4 响应对象 91
5.4.1 HttpResponse类 91
5.4.2 HttpResponse的子类 94
5.5 生成响应的便捷函数 96
5.5.1 render()函数 96
5.5.2 redirect()函数 98
5.5.3 get_object_or_404()函数 99
5.5.4 get_list_or_404()函数 99
5.6 视图装饰器 99
5.7 类视图 100
5.8 通用视图 101
5.8.1 通用视图分类 101
5.8.2 通用显示视图与模型 101
5.8.3 修改查询集结果 101
5.8.4 添加额外的上下文对象 102
5.9 异步视图 102
小结 102
习题 102
第6章 身份验证系统 104
6.1 User对象 104
6.2 权限与权限管理 107
6.2.1 默认权限 108
6.2.2 权限管理 108
6.2.3 自定义权限 108
6.3 Web请求认证 108
6.3.1 用户登录与退出 108
6.3.2 限制用户访问 111
6.4 模板身份验证 114
6.5 自定义用户模型 114
6.6 状态保持 115
6.6.1 Cookie 115
6.6.2 Session 118
小结 122
习题 122
第7章 电商项目——前期准备 124
7.1 项目需求 124
7.2 模块归纳 133
7.3 项目开发模式与运行机制 134
7.4 项目创建和配置 135
7.4.1 创建项目 135
7.4.2 配置开发环境 135
7.4.3 配置Jinja2模板 136
7.4.4 配置MySQL数据库 138
7.4.5 配置Redis数据库 139
7.4.6 配置项目日志 140
7.4.7 配置前端静态文件 142
7.4.8 配置应用目录 143
小结 144
习题 144
第8章 电商项目——用户管理与验证 145
8.1 定义用户模型类 145
8.2 用户注册 147
8.2.1 用户注册逻辑分析 147
8.2.2 用户注册后端基础需求的实现 148
8.2.3 用户名与手机号唯一性校验 152
8.2.4 图形验证码 155
8.3 用户登录 158
8.3.1 使用用户名登录 158
8.3.2 使用手机号登录 160
8.3.3 状态保持 161
8.3.4 首页展示用户名 162
8.3.5 退出登录 164
8.4 用户中心 165
8.4.1 用户基本信息 165
8.4.2 添加邮箱 168
8.4.3 邮箱验证 169
8.4.4 省市区三级联动 175
8.4.5 新增与展示收货地址 180
8.4.6 设置默认地址与修改地址标题 186
8.4.7 修改与删除收货地址 188
8.4.8 修改登录密码 191
小结 192
习题 193
第9章 电商项目——商品数据的呈现 194
9.1 商品数据库表分析 194
9.2 导入商品数据 197
9.3 呈现首页数据 201
9.3.1 呈现首页商品分类 201
9.3.2 呈现首页商品广告 205
9.4 商品列表 207
9.4.1 商品列表页分析 207
9.4.2 呈现商品列表页数据 209
9.4.3 获取商品分类 213
9.4.4 列表页面包屑导航 216
9.4.5 列表页热销排行 217
9.5 商品搜索 220
9.5.1 准备搜索引擎 220
9.5.2 渲染商品搜索结果 223
9.5.3 搜索结果分页 224
9.6 商品详情 225
9.6.1 展示商品SKU信息 225
9.6.2 展示商品SKU规格 228
9.7 用户浏览记录 230
9.7.1 浏览记录存储方案 230
9.7.2 保存和查询浏览记录 232
小结 234
习题 234
第10章 电商项目——购物车 235
10.1 购物车数据存储方案 235
10.1.1 登录用户购物车数据存储方案 235
10.1.2 未登录用户购物车数据存储方案 236
10.2 购物车管理 238
10.2.1 购物车添加商品 238
10.2.2 展示购物车商品 242
10.2.3 修改购物车商品 244
10.2.4 删除购物车商品 247
10.2.5 全选购物车 249
10.2.6 合并购物车 251
10.3 展示购物车缩略信息 252
小结 255
习题 256
第11章 电商项目——订单 257
11.1 结算订单 257
11.1.1 接口定义 257
11.1.2 后端逻辑实现 258
11.1.3 前端页面渲染 262
11.2 提交订单 264
11.2.1 定义订单表模型 264
11.2.2 保存订单信息 266
11.2.3 呈现订单提交成功页面 269
11.3 基于事务的订单数据保存 271
11.3.1 Django中事务的使用 271
11.3.2 使用事务保存订单数据 271
11.4 基于乐观锁的并发下单 273
11.5 查看订单 276
小结 279
习题 279
第12章 电商项目——支付与评价 280
12.1 支付宝开放平台介绍 280
12.2 对接支付宝 280
12.2.1 支付信息配置 281
12.2.2 订单支付功能 285
12.2.3 保存订单支付结果 289
12.3 商品评价 291
12.3.1 评价订单商品 291
12.3.2 详情页展示商品评价 295
12.3.3 商品列表页展示评价数量 297
小结 297
习题 298
参考文献 299