Python Web开发基础教程:Django版 微课版
作者:夏帮贵 主编
出版时间: 2020年版
内容简介
本书系统地讲述了基于Django框架的Python Web开发的相关基础知识,涵盖了开发环境配置、Django配置、URL分发、模型和数据库、视图、模板、表单、Django工具等内容。对每一个知识点,本书都尽量结合实例帮助读者学习理解,并在每一章最后给出一个综合实例说明本章知识的使用。
目录
第 1章
Python Web开发起步 1
1.1 Python Web开发简介 1
1.1.1 Web应用基本架构 1
1.1.2 Web框架简介 1
1.1.3 Python Web框架简介 2
1.1.4 Django简介 2
1.2 配置Web开发环境 4
1.2.1 安装Python 4
1.2.2 安装Django 6
1.2.3 配置系统环境变量 7
1.2.4 安装Visual Studio 9
1.3 创建Django项目 10
1.3.1 执行命令创建项目 10
1.3.2 关于django-admin和manage.py 12
1.3.3 添加应用 13
1.3.4 在Visual Studio中创建项目 15
1.3.5 为项目定制虚拟开发环境 17
1.4 实践:创建HelloWorld项目 19
本章小结 21
习题 21
第 2章
Django配置 22
2.1 Django项目的配置文件 22
2.1.1 基本配置 22
2.1.2 模板配置 25
2.1.3 数据库配置 26
2.1.4 静态资源配置 26
2.2 在Web服务器中部署项目 28
2.2.1 常用Web服务器 28
2.2.2 WSGI简介 28
2.2.3 在IIS中部署Django项目 30
2.2.4 部署包含静态资源的Django项目 34
2.3 实践:在IIS中配置HelloWorld项目 36
本章小结 39
习题 39
第3章
URL分发 40
3.1 URL分发机制简介 40
3.2 URL配置 41
3.2.1 URL解析函数 41
3.2.2 使用正则表达式 42
3.2.3 包含其他的URL配置 45
3.3 URL参数传递 47
3.3.1 获取URL中的数据 47
3.3.2 路径转换器 48
3.3.3 正则表达式中的变量 50
3.3.4 传递附加数据 50
3.3.5 使用带默认值的参数 51
3.4 反向解析URL 52
3.4.1 反向解析不带参数的命名URL模式 52
3.4.2 反向解析带参数的命名URL模式 52
3.4.3 反向解析视图函数 53
3.4.4 在模板中反向解析URL 54
3.5 URL命名空间 55
3.5.1 URL命名空间简介 55
3.5.2 使用URL的应用命名空间 55
3.5.3 使用URL的实例命名空间 58
3.6 实践:为HelloWorld项目增加导航链接 60
本章小结 61
习题 61
第4章
模型和数据库 62
4.1 模型基础 62
4.1.1 定义模型 62
4.1.2 模型配置 63
4.1.3 迁移数据库 64
4.1.4 定义字段 66
4.2 数据操作 67
4.2.1 在Visual Studio中管理SQLite
数据库 68
4.2.2 添加数据 70
4.2.3 获取数据 71
4.2.4 字段查找 73
4.2.5 更新数据 75
4.2.6 删除数据 75
4.2.7 查询集操作 75
4.3 索引 77
4.3.1 使用字段选项创建索引 78
4.3.2 在Meta子类中定义索引 78
4.4 特殊查询表达式 79
4.4.1 准备实例数据 79
4.4.2 F()表达式 81
4.4.3 数据库函数表达式 82
4.4.4 Subquery()表达式 82
4.4.5 聚合函数 82
4.4.6 原始SQL表达式 83
4.5 执行原始SQL查询 83
4.5.1 用raw()方法执行原始SQL 84
4.5.2 直接执行原始SQL 85
4.6 关系 86
4.6.1 多对一关系 86
4.6.2 多对多关系 89
4.6.3 使用中间模型 92
4.6.4 一对一关系 93
4.7 实践:定义用户模型 95
本章小结 96
习题 96
第5章
视图 98
5.1 定义视图 98
5.1.1 定义和使用视图 98
5.1.2 返回错误 99
5.1.3 处理Http404异常 102
5.2 处理请求和响应 102
5.2.1 获取请求数据 102
5.2.2 处理响应内容 103
5.2.3 文件附件 104
5.2.4 生成CSV文件 105
5.2.5 生成PDF文件 106
5.2.6 返回JSON字符串 107
5.2.7 使用响应模板 108
5.2.8 重定向 108
5.3 在视图中使用模型 109
5.3.1 在视图中输出模型数据 109
5.3.2 数据分页 110
5.4 基于类的视图 113
5.4.1 使用基于类的视图 113
5.4.2 设置视图类属性 116
5.4.3 扩展视图类 116
5.5 内置通用视图 117
5.5.1 通用视图DetailView 117
5.5.2 通用视图ListView 119
5.6 实践:实现图形验证码 120
本章小结 122
习题 123
第6章
模板 124
6.1 模板基础 124
6.1.1 配置模板引擎 124
6.1.2 使用模板类 125
6.1.3 使用模板文件 125
6.2 模板语言 127
6.2.1 变量 127
6.2.2 注释 128
6.2.3 过滤器 128
6.2.4 标签:include 129
6.2.5 标签:for 130
6.2.6 标签:if 132
6.3 模板继承 133
6.4 实践:用模板实现数据分页 134
本章小结 136
习题 137
第7章
表单 138
7.1 表单基础 138
7.1.1 HTML表单 138
7.1.2 Django表单 140
7.2 Django表单进阶 142
7.2.1 表单字段渲染方式 142
7.2.2 表单字段类型和参数 144
7.2.3 使用小部件 147
7.2.4 字段校验 148
7.2.5 使用表单数据 150
7.2.6 手动渲染字段 151
7.2.7 遍历字段 152
7.2.8 表单集 154
7.3 模型表单 155
7.3.1 模型表单基本操作 156
7.3.2 在视图中使用模型表单 157
7.3.3 自定义模型表单字段 158
7.4 资源 160
7.4.1 小部件资源 160
7.4.2 表单资源 161
7.5 Ajax 162
7.5.1 实现客户端Web页面 163
7.5.2 处理请求 164
7.6 实践:实现用户注册 164
本章小结 169
习题 169
第8章
Django工具 170
8.1 Admin站点 170
8.1.1 启用Admin站点 170
8.1.2 管理用户 173
8.1.3 管理组 175
8.1.4 管理模型 178
8.2 用户认证 182
8.2.1 用户认证相关模型 182
8.2.2 控制台用户管理 184
8.2.3 内置认证视图 186
8.2.4 自定义视图中的身份认证 194
8.2.5 限制页面登录访问 195
8.2.6 限制页面访问权限 197
8.2.7 自定义页面访问限制条件 197
8.3 发送E-mail 197
8.3.1 E-mail配置 197
8.3.2 发送密码重置邮件 198
8.3.3 自定义E-mail发送 199
8.3.4 E-mail后端 202
8.4 会话控制 203
8.4.1 启用会话控制 203
8.4.2 会话对象方法 205
8.4.3 在视图中使用会话 207
8.5 实践:自定义User模型 209
本章小结 216
习题 216
第9章
Python在线题库 217
9.1 项目设计 217
9.1.1 功能分析 217
9.1.2 数据库设计 217
9.2 项目实现 218
9.2.1 创建项目和应用 218
9.2.2 创建模型和数据库 218
9.2.3 注册模型 221
9.2.4 创建添加和修改试题对象模板 223
9.2.5 创建添加和修改试卷内容对象模板 223
9.2.6 实现随机抽取试题 224
9.3 数据管理 225
9.3.1 试题类型模型管理 225
9.3.2 试题模型管理 226
9.3.3 试卷模板模型管理 227
9.3.4 试卷内容模型管理 228
9.4 实现试卷导出 229
9.4.1 基本思路 230
9.4.2 定义试卷导出页面模板 230
9.4.3 定义试卷导出相关视图 231
9.4.4 测试试卷导出页面 234
本章小结 235
习题 235