目录
推荐序 .................................1
前言 .....................................3
知识图谱 ..............................4
第一篇 Python 语言基础
第1 章 开篇综述 ................. 3
1.1 Python 语言历史 .................4
1.2 Python 语言设计哲学——Python 之禅 .........................4
1.3 Python 语言特点 .................5
1.4 Python 语言应用前景 ..........6
1.5 如何获得帮助 .....................7
第2 章 开发环境搭建 .......... 8
2.1 搭建Python 环境.................8
2.2 PyCharm 开发工具 ............ 10
2.2.1 下载和安装 ............ 11
2.2.2 设置Python 解释器 ........................................ 12
2.3 文本编辑工具 ................... 14
2.4 本章小结 .......................... 14
2.5 动手实践 .......................... 14
第3 章 第一个Python 程序 15
3.1 使用Python Shell .............. 15
3.2 使用PyCharm 实现 ........... 17
3.2.1 创建项目 ................ 17
3.2.2 创建Python 代码文件 ..................................... 19
3.2.3 编写代码 ................ 20
3.2.4 运行程序 ................ 20
3.3 文本编辑工具+Python 解释器实现 ............................ 21
3.3.1 编写代码 ................ 21
3.3.2 运行程序 ................ 21
3.4 代码解释 .......................... 22
Python 6 从小白到大牛(第2 版)
3.5 本章小结 .......................... 23
3.6 动手实践:世界,你好 ..... 23
第4 章 Python 语法基础 ....24
4.1 标识符和关键字 ................ 24
4.1.1 标识符 ................... 24
4.1.2 关键字 ................... 24
4.2 变量和常量 ...................... 25
4.2.1 变量 ...................... 25
4.2.2 常量 ...................... 25
4.3 注释 ................................. 25
4.4 语句 ................................. 26
4.5 模块 ................................. 27
4.6 包 ..................................... 28
4.6.1 创建包 ................... 28
4.6.2 包导入 ................... 29
4.7 本章小结 .......................... 30
4.8 同步练习 .......................... 30
第5 章 Python 编码规范 ....31
5.1 命名规范 .......................... 31
5.2 注释规范 .......................... 32
5.2.1 文件注释 ................ 32
5.2.2 文档注释 ................ 32
5.2.3 代码注释 ................ 34
5.2.4 使用TODO 注释.... 35
5.3 导入规范 .......................... 36
5.4 代码排版 .......................... 37
5.4.1 空行 ...................... 37
5.4.2 空格 ...................... 38
5.4.3 缩进 ...................... 39
5.4.4 断行 ...................... 39
5.5 本章小结 .......................... 40
5.6 同步练习 .......................... 40
第6 章 数据类型 ................42
6.1 数字类型 .......................... 42
6.1.1 整数类型 ................ 42
6.1.2 浮点类型 ................ 43
6.1.3 复数类型 ................ 43
6.1.4 布尔类型 ................ 43
目录7
6.2 数字类型互相转换 ............ 44
6.2.1 隐式类型转换 ........ 44
6.2.2 显式类型转换 ........ 45
6.3 字符串类型 ...................... 45
6.3.1 字符串表示方式 ..... 45
6.3.2 字符串格式化 ........ 47
6.3.3 字符串查找 ............ 49
6.3.4 字符串与数字互相转换................................... 50
6.4 本章小结 .......................... 51
6.5 同步练习 .......................... 52
第7 章 运算符 ...................53
7.1 算术运算符 ...................... 53
7.1.1 一元运算符 ............ 53
7.1.2 二元运算符 ............ 53
7.2 关系运算符 ...................... 55
7.3 逻辑运算符 ...................... 56
7.4 位运算符 .......................... 57
7.5 赋值运算符 ...................... 59
7.6 其他运算符 ...................... 61
7.6.1 同一性测试运算符 . 61
7.6.2 成员测试运算符 ..... 62
7.7 运算符优先级 ................... 62
7.8 本章小结 .......................... 63
7.9 同步练习 .......................... 63
第8 章 控制语句 ................64
8.1 分支语句 .......................... 64
8.1.1 if 结构 ................... 64
8.1.2 if-else 结构 ........... 65
8.1.3 elif 结构 ................ 66
8.1.4 三元运算符替代品——条件表达式 ................ 67
8.2 循环语句 .......................... 67
8.2.1 while 语句 .............. 67
8.2.2 for 语句 .................. 68
8.3 跳转语句 .......................... 69
8.3.1 break 语句 .............. 69
8.3.2 continue 语句 ......... 70
8.3.3 while 和for 中的else 语句.............................. 70
8.4 使用范围 .......................... 72
Python 8 从小白到大牛(第2 版)
8.5 本章小结 .......................... 72
8.6 同步练习 .......................... 72
8.7 动手实践:计算水仙花数 . 73
第二篇 Python 编程进阶
第9 章 序列 .....................77
9.1 序列概述 .......................... 77
9.1.1 索引操作 ............... 78
9.1.2 序列的加和乘 ........ 78
9.1.3 序列切片 ................ 79
9.2 元组 ................................. 80
9.2.1 创建元组 ................ 80
9.2.2 访问元组 ................ 81
9.2.3 遍历元组 ................ 82
9.3 列表 ................................. 82
9.3.1 列表创建 ................ 83
9.3.2 追加元素 ................ 83
9.3.3 插入元素 ................ 84
9.3.4 替换元素 ................ 84
9.3.5 删除元素 ................ 84
9.3.6 其他常用方法 ........ 85
9.3.7 列表推导式 ............ 86
9.4 本章小结 .......................... 87
9.5 同步练习 .......................... 87
9.6 动手实践:使用列表推导式 ....................................... 87
第10 章 集合 ...................88
10.1 可变集合 ........................ 88
10.1.1 创建可变集合 .... 88
10.1.2 修改可变集合 .... 89
10.1.3 遍历集合 ............ 90
10.2 不可变集合 .................... 90
10.3 集合推导式 .................... 91
10.4 本章小结 ........................ 92
10.5 同步练习 ........................ 92
10.6 动手实践:使用集合推导式 ..................................... 92
第11 章 字典 ....................93
11.1 创建字典 ........................ 93
目录9
11.1.1 使用大括号创建字典 .................................. 93
11.1.2 使用dict() 函数创建字典 ............................ 94
11.2 修改字典 ........................ 95
11.3 访问字典 ........................ 96
11.4 遍历字典 ........................ 96
11.5 字典推导式 ..................... 97
11.6 本章小结 ........................ 98
11.7 同步练习 ........................ 98
11.8 动手实践:使用字典推导式 ..................................... 98
第12 章 函数与函数式编程 99
12.1 定义函数 ........................ 99
12.2 函数参数 ...................... 100
12.2.1 使用关键字参数调用函数 ......................... 100
12.2.2 参数默认值 ...... 100
12.2.3 单星号(*)可变参数 .............................. 101
12.2.4 双星号(**)可变参数 ............................ 102
12.3 函数返回值 ................... 102
12.3.1 无返回值函数 .. 102
12.3.2 多返回值函数 .. 103
12.4 函数变量作用域 ............ 104
12.5 生成器 .......................... 105
12.6 嵌套函数 ...................... 107
12.7 函数式编程基础 ............ 108
12.7.1 高阶函数与函数类型 ................................ 108
12.7.2 函数作为其他函数返回值使用.................. 109
12.7.3 函数作为其他函数参数使用 ..................... 109
12.7.4 匿名函数与lambda 表达式 ....................... 110
12.8 函数式编程的三大基础函数 ................................... 111
12.8.1 过滤函数filter() ........................................ 111
12.8.2 映射函数map() 112
12.8.3 聚合函数reduce() ..................................... 112
12.9 装饰器 .......................... 113
12.9.1 一个没有使用装饰器的示例 ..................... 113
12.9.2 使用装饰器 ...... 114
12.9.3 同时使用多个装饰器 ................................ 114
12.9.4 给装饰器传递参数 .................................... 115
12.10 本章小结 .................... 116
12.11 同步练习 .................... 116
Python 10 从小白到大牛(第2 版)
12.12 动手实践:找出素数 ... 117
第13 章 面向对象编程 .....118
13.1 面向对象概述 ................ 118
13.2 面向对象三个基本特性 . 118
13.2.1 封装性 ............. 118
13.2.2 继承性 ............. 118
13.2.3 多态性 ............. 119
13.3 类和对象 ...................... 119
13.3.1 定义类 ............. 119
13.3.2 创建和使用对象 ........................................ 119
13.3.3 实例变量 .......... 120
13.3.4 类变量 ............. 121
13.3.5 构造方法 .......... 122
13.3.6 实例方法 .......... 123
13.3.7 类方法 ............. 124
13.3.8 静态方法 .......... 124
13.4 封装性 .......................... 125
13.4.1 私有变量 .......... 125
13.4.2 私有方法 .......... 126
13.4.3 定义属性 .......... 127
13.5 继承性 .......................... 128
13.5.1 继承概念 .......... 128
13.5.2 重写方法 .......... 129
13.5.3 多继承 ............. 130
13.6 多态性 .......................... 131
13.6.1 多态概念 .......... 131
13.6.2 类型检查 .......... 132
13.6.3 鸭子类型 .......... 133
13.7 Python 根类——object .. 134
13.7.1 __str__() 方法 . 134
13.7.2 对象比较方法 .. 135
13.8 本章小结 ...................... 136
13.9 同步练习 ...................... 136
13.10 动手实践:设计多继承骡子类 ............................. 136
第14 章 异常处理 ............137
14.1 一个异常示例 ................ 137
14.2 异常类继承层次 ............ 138
14.3 常见异常 ...................... 139
目录11
14.3.1 AttributeError 异常 ................................... 139
14.3.2 OSError 异常 ... 140
14.3.3 IndexError 异常 ........................................ 140
14.3.4 KeyError 异常 .. 141
14.3.5 NameError 异常 ........................................ 141
14.3.6 TypeError 异常 . 141
14.3.7 ValueError 异常 ........................................ 142
14.4 捕获异常 ...................... 142
14.4.1 try-except 语句 . 142
14.4.2 多个except 代码块 ................................... 143
14.4.3 try-except 语句嵌套 .................................. 145
14.4.4 多重异常捕获 .. 146
14.5 异常堆栈跟踪 ................ 146
14.6 释放资源 ...................... 147
14.6.1 finally 代码块 .. 148
14.6.2 else 代码块 ...... 149
14.6.3 with as 代码块自动资源管理 .................... 150
14.7 自定义异常类 ................ 151
14.8 显式抛出异常 ................ 151
14.9 本章小结 ...................... 152
14.10 同步练习 .................... 152
14.11 动手实践:释放资源 ... 152
第15 章 常用模块 ............153
15.1 math 模块 ..................... 153
15.1.1 舍入函数 .......... 153
15.1.2 幂和对数函数 .. 154
15.1.3 三角函数 .......... 154
15.2 random 模块 .................. 155
15.3 datetime 模块 ................ 156
15.3.1 datetime、date 和time 类 ......................... 157
15.3.2 日期时间计算 .. 159
15.3.3 日期时间格式化和解析 ............................. 160
15.3.4 时区 ................. 162
15.4 本章小结 ...................... 163
15.5 同步练习 ...................... 163
15.6 动手实践:输入与转换日期 ................................... 163
第16 章 正则表达式 ........164
16.1 正则表达式中的字符 ..... 164
Python 12 从小白到大牛(第2 版)
16.1.1 元字符 ............. 164
16.1.2 字符转义 .......... 165
16.1.3 开始与结束字符 ........................................ 165
16.2 字符类 .......................... 166
16.2.1 定义字符类 ...... 166
16.2.2 字符类取反 ...... 167
16.2.3 区间 ................. 167
16.2.4 预定义字符类 .. 168
16.3 量词.............................. 169
16.3.1 使用量词 .......... 169
16.3.2 贪婪量词和懒惰量词 ................................ 170
16.4 分组.............................. 171
16.4.1 定义分组 .......... 171
16.4.2 命名分组 .......... 172
16.4.3 反向引用分组 .. 172
16.4.4 非捕获分组 ...... 174
16.5 re 模块中重要函数 ........ 174
16.5.1 search() 和match() 函数 ........................... 174
16.5.2 findall() 和finditer() 函数 ......................... 176
16.5.3 字符串分割 ...... 176
16.5.4 字符串替换 ...... 177
16.6 编译正则表达式 ............ 178
16.6.1 已编译正则表达式对象 ............................. 178
16.6.2 编译标志 .......... 180
16.7 本章小结 ...................... 183
16.8 同步练习 ...................... 183
16.9 动手实践:找出HTML 中的图片 .......................... 183
第17 章 文件操作与管理 ..184
17.1 文件操作 ...................... 184
17.1.1 打开文件 .......... 184
17.1.2 关闭文件 .......... 186
17.1.3 文本文件读写 .. 187
17.1.4 二进制文件读写 ........................................ 187
17.2 os 模块 ......................... 188
17.3 os.path 模块 ................... 189
17.4 本章小结 ...................... 191
17.5 同步练习 ...................... 191
17.6 动手实践:读写日期 ..... 191
目录13
第三篇 Python 常用库与框架
第18 章 数据交换格式 .....195
18.1 XML 数据交换格式 ....... 196
18.1.1 XML 文档结构 196
18.1.2 解析XML 文档 197
18.1.3 使用XPath ....... 200
18.2 JSON 数据交换格式 ...... 201
18.2.1 JSON 文档结构 201
18.2.2 JSON 数据编码 203
18.2.3 JSON 数据解码 204
18.3 本章小结 ...................... 206
18.4 同步练习 ...................... 206
18.5 动手实践:解析结构化文档 ................................... 206
第19 章 数据库编程 ........207
19.1 数据持久化技术概述 ..... 207
19.2 MySQL 数据库管理系统 ........................................ 207
19.2.1 数据库安装和配置 .................................... 208
19.2.2 登录服务器 ...... 212
19.2.3 常见的管理命令 ........................................ 213
19.3 Python DB-API .............. 216
19.3.1 建立数据库连接 ........................................ 217
19.3.2 创建游标 .......... 218
19.4 实例:User 表CRUD 操作 ..................................... 218
19.4.1 安装PyMySQL 库 .................................... 218
19.4.2 数据库编程一般过程 ................................ 219
19.4.3 数据查询操作 .. 220
19.4.4 数据修改操作 .. 222
19.5 NoSQL 数据存储 ........... 225
19.5.1 dbm 数据库的打开和关闭 ......................... 225
19.5.2 dbm 数据存储 .. 226
19.6 本章小结 ...................... 227
19.7 同步练习 ...................... 227
19.8 动手实践:从结构化文档迁移数据到数据库 ......... 227
第20 章 网络编程 ............228
20.1 网络基础 ...................... 228
20.1.1 网络结构 .......... 228
20.1.2 TCP/IP ............. 229
Python 14 从小白到大牛(第2 版)
20.1.3 IP 地址 ............. 229
20.1.4 端口 ................. 230
20.2 TCP Socket 低层次网络编程 .................................. 230
20.2.1 TCP Socket 通信概述 ................................ 230
20.2.2 TCP Socket 通信过程 ................................ 230
20.2.3 TCP Socket 编程API ................................ 231
20.2.4 实例:简单聊天工具 ................................ 232
20.2.5 实例:文件上传工具 ................................ 233
20.3 UDP Socket 低层次网络编程.................................. 235
20.3.1 UDP Socket 编程API ............................... 235
20.3.2 实例:简单聊天工具 ................................ 236
20.3.3 实例:文本文件上传工具 ......................... 237
20.4 访问互联网资源 ............ 238
20.4.1 URL 概念 ........ 238
20.4.2 HTTP/HTTPS .. 239
20.4.3 搭建自己的Web 服务器 ........................... 239
20.4.4 使用urllib 库 ... 243
20.4.5 发送GET 请求 . 243
20.4.6 发送POST 请求 ........................................ 244
20.4.7 实例:图片下载器 .................................... 245
20.5 本章小结 ...................... 245
20.6 同步练习 ...................... 245
20.7 动手实践:解析来自Web 的结构化数据 ............... 246
第21 章 wxPython 图形用户界面编程 ........................247
21.1 Python 图形用户界面开发工具包 ........................... 247
21.2 wxPython 安装 .............. 247
21.3 wxPython 基础 .............. 248
21.3.1 wxPython 类层次结构 ............................... 248
21.3.2 第一个wxPython 程序 .............................. 248
21.3.3 wxPython 界面构建层次结构 .................... 252
21.3.4 界面设计工具 .. 252
21.4 事件处理 ...................... 254
21.4.1 一对一事件处理 ........................................ 254
21.4.2 一对多事件处理 ........................................ 255
21.5 布局管理 ...................... 257
21.5.1 不要使用绝对布局 .................................... 257
21.5.2 Sizer 布局管理器 ...................................... 257
21.5.3 Box 布局器 ...... 258
21.5.4 StaticBox 布局 . 260
目录15
21.5.5 Grid 布局 ......... 261
21.5.6 FlexGrid 布局 .. 263
21.6 wxPython 基本控件 ....... 264
21.6.1 静态文本和按钮 ........................................ 265
21.6.2 文本输入控件 .. 266
21.6.3 复选框 ............. 267
21.6.4 单选按钮 .......... 268
21.6.5 下拉列表 .......... 269
21.6.6 列表 ................. 271
21.6.7 静态图片控件 .. 272
21.7 实例:图书信息网格 ..... 274
21.8 本章小结 ...................... 276
21.9 同步练习 ...................... 276
21.10 动手实践:展示Web 数据 ................................... 276
第22 章 Python 多线程编程 ......................................277
22.1 基础知识 ...................... 277
22.1.1 进程 ................. 277
22.1.2 线程 ................. 278
22.2 使用threading 模块 ....... 278
22.3 创建线程 ...................... 279
22.3.1 自定义函数作为线程体 ............................. 279
22.3.2 继承Thread 线程类实现线程体 ................ 281
22.4 线程管理 ...................... 282
22.4.1 等待线程结束 .. 282
22.4.2 线程停止 .......... 283
22.5 线程安全 ...................... 284
22.5.1 临界资源问题 .. 285
22.5.2 多线程同步 ...... 287
22.6 线程间通信 ................... 288
22.6.1 使用Condition 实现线程间通信 ............... 288
22.6.2 使用Event 实现线程间通信 ...................... 292
22.7 本章小结 ...................... 293
22.8 同步练习 ...................... 293
22.9 动手实践:网络爬虫 ..... 293
第四篇 Python 项目实战
第23 章 项目实战1:网络爬虫技术——爬取搜狐证券股票数据 ......................................................297
23.1 网络爬虫技术概述 ........ 297
Python 16 从小白到大牛(第2 版)
23.1.1 网络通信技术 .. 297
23.1.2 多线程技术 ...... 297
23.1.3 数据交换技术 .. 298
23.1.4 Web 前端技术 .. 298
23.1.5 数据解析技术 .. 299
23.1.6 数据存储技术 .. 300
23.2 爬取数据 ...................... 300
23.2.1 网页中静态和动态数据 ............................. 300
23.2.2 使用urllib 爬取数据 ................................. 301
23.2.3 使用Selenium 爬取数据 ........................... 304
23.3 解析数据 ...................... 307
23.3.1 使用正则表达式 ........................................ 307
23.3.2 使用BeautifulSoup 库 .............................. 309
23.4 项目实战:爬取搜狐网股票数据 ........................... 312
23.4.1 爬取并解析数据 ........................................ 312
23.4.2 检测数据是否更新 .................................... 314
23.4.3 保存数据到数据库 .................................... 315
23.4.4 爬虫工作计划任务 .................................... 318
第24 章 项目实战2:数据分析技术——贵州茅台股票数据分析 ......................................................321
24.1 数据分析过程 ................ 321
24.1.1 数据收集 .......... 321
24.1.2 数据存储 .......... 321
24.1.3 数据清洗 .......... 322
24.1.4 数据分析 .......... 322
24.1.5 数据可视化 ...... 322
24.2 数据分析工具环境搭建和使用 ............................... 322
24.2.1 安装Jupyter ..... 322
24.2.2 使用IPython Shell .................................... 323
24.2.3 使用Jupyter Notebook .............................. 324
24.3 数据分析与科学计算基础库——NumPy ................ 327
24.3.1 NumPy 库安装 . 327
24.3.2 NumPy 中的多维数组对象 ........................ 327
24.3.3 NumPy 数组的数据类型 ........................... 328
24.3.4 数组的属性 ...... 328
24.3.5 数组的轴 .......... 329
24.3.6 访问一维数组中的元素 ............................. 330
24.3.7 访问二维数组中的元素 ............................. 330
24.4 数据分析必备库——pandas ................................... 331
24.4.1 pandas 库安装 .. 332
目录17
24.4.2 Series 数据结构 ........................................ 332
24.4.3 DataFrame 数据结构 ................................. 333
24.5 项目实战:贵州茅台股票数据分析 ........................ 335
24.5.1 从数据库中读取股票历史数据.................. 335
24.5.2 获得特定时间段股票交易数据.................. 336
24.5.3 查询时间段内最大成交量 ......................... 337
24.5.4 查询时间段内总成交量 ............................. 337
24.5.5 按照成交金额排序 .................................... 338
第25 章 项目实战3:数据可视化技术——贵州茅台股票数据可视化 ...............................................339
25.1 使用Matplotlib 绘制图表 ....................................... 339
25.1.1 安装Matplotlib 339
25.1.2 图表基本构成要素 .................................... 339
25.1.3 绘制折线图 ...... 340
25.1.4 绘制柱状图 ...... 341
25.1.5 绘制饼状图 ...... 342
25.1.6 绘制散点图 ...... 343
25.1.7 绘制子图表 ...... 344
25.2 项目实战:贵州茅台股票数据可视化 .................... 346
25.2.1 从数据库读取股票数据 ............................. 346
25.2.2 绘制股票成交量折线图 ............................. 347
25.2.3 绘制股票OHLC 图 ................................... 348
25.2.4 绘制股票K 线图 ....................................... 349
第26 章 项目实战4:计算机视觉技术——网站验证码识别 ............................................................352
26.1 人工智能 ...................... 352
26.2 计算机视觉 ................... 352
26.2.1 计算机视觉的Python 语言相关库 ............ 353
26.2.2 色彩空间 .......... 353
26.3 使用OpenCV 库 ............ 353
26.3.1 安装OpenCV 库 ....................................... 353
26.3.2 读取和显示图像 ........................................ 353
26.3.3 调整图像大小 .. 354
26.3.4 图像旋转 .......... 355
26.3.5 绘制几何图形 .. 356
26.3.6 图像的灰度化 .. 357
26.3.7 图像的二值化与阈值 ................................ 358
26.3.8 人脸检测 .......... 360
26.4 项目实战:网站验证码识别 ................................... 361
26.4.1 验证码 ............. 361
Python 18 从小白到大牛(第2 版)
26.4.2 验证码识别 ...... 361
26.4.3 安装OCR 引擎Tesseract .......................... 361
26.4.4 安装pytesseract 库 ................................... 361
26.4.5 安装pillow 库 .. 362
26.4.6 验证码识别代码实现 ................................ 363
第27 章 项目实战5:Python Web Flask 框架——PetStore 宠物商店项目 .....................................365
27.1 Web 应用程序概述 ........ 365
27.1.1 HTTP/HTTPS .. 365
27.1.2 B/S 网络架构 ... 365
27.1.3 Web 前端技术 .. 366
27.2 Flask 框架介绍 .............. 366
27.3 编写Flask 程序 ............. 366
27.3.1 安装Flask ........ 366
27.3.2 第一个Flask 程序 ..................................... 366
27.3.3 路由 ................. 368
27.4 Jinja2 模板 ................... 371
27.4.1 没有使用模板 .. 371
27.4.2 使用模板 .......... 372
27.4.3 模板中使用表达式 .................................... 373
27.4.4 模板中使用语句 ........................................ 374
27.4.5 模板中访问静态文件 ................................ 377
27.5 处理HTTP 操作 ............ 378
27.5.1 使用request 请求对象 .............................. 378
27.5.2 使用response 响应对象 ............................ 381
27.5.3 使用session 对象 ...................................... 382
27.6 PetStore 宠物商店项目——需求与设计 ................. 383
27.6.1 项目概述 .......... 383
27.6.2 需求分析 .......... 383
27.6.3 原型设计 .......... 384
27.6.4 数据库设计 ...... 384
27.6.5 架构设计 .......... 386
27.6.6 系统设计 .......... 387
27.7 PetStore 宠物商店项目——创建数据库 ................. 388
27.7.1 安装和配置MySQL 数据库 ...................... 388
27.7.2 编写数据库DDL 脚本 .............................. 388
27.7.3 插入初始数据到数据库 ............................. 389
27.8 PetStore 宠物商店项目——创建项目 ..................... 390
27.8.1 创建项目 .......... 390
27.8.2 项目包结构 ...... 390
目录19
27.8.3 项目配置文件 .. 391
27.9 PetStore 宠物商店项目——数据持久层 .................. 391
27.9.1 编写DAO 基类 391
27.9.2 用户管理DAO . 392
27.9.3 商品管理DAO . 393
27.9.4 订单管理DAO . 395
27.9.5 订单明细管理DAO .................................. 396
27.10 PetStore 宠物商店项目——表示层 ....................... 397
27.10.1 启动模块实现 397
27.10.2 登录页面实现 398
27.10.3 商品列表 ........ 400
27.10.4 添加商品到购物车 .................................. 403
27.10.5 查看购物车 .... 404
27.10.6 提交订单 ........ 407
第28 章 项目实战6:Python 综合技术——QQ 聊天工具开发 .........................................................410
28.1 系统分析与设计 ............ 410
28.1.1 项目概述 .......... 410
28.1.2 需求分析 .......... 410
28.1.3 原型设计 .......... 411
28.1.4 数据库设计 ...... 412
28.1.5 网络拓扑图 ...... 414
28.1.6 系统设计 .......... 414
28.2 任务1:创建服务器端数据库 ................................ 415
28.2.1 迭代1.1:安装和配置MySQL 数据库 ..... 415
28.2.2 迭代1.2:编写数据库DDL 脚本 ............. 415
28.2.3 迭代1.3:插入初始数据到数据库 ............ 416
28.3 任务2:创建项目 ......... 416
28.3.1 迭代2.1:创建QQ 客户端项目 ................ 416
28.3.2 迭代2.2:QQ 客户端项目中添加资源图片 ................................................................. 417
28.3.3 迭代2.3:QQ 客户端项目中添加包 ......... 417
28.3.4 迭代2.4:创建QQ 服务器项目 ................ 418
28.3.5 迭代2.5:QQ 服务器项目中添加包 ......... 418
28.4 任务3:服务器项目数据持久层 ............................ 418
28.4.1 迭代3.1:服务器端配置文件 ................... 418
28.4.2 迭代3.2:编写base_dao 模块 .................. 419
28.4.3 迭代3.3:编写用户管理DAO 类 ............. 419
28.5 任务4:QQ 客户端项目UI 实现 ........................... 421
28.5.1 迭代4.1:客户端配置文件 ....................... 421
28.5.2 迭代4.2:编写my_frame 模块 ................ 421
Python 20 从小白到大牛(第2 版)
28.5.3 迭代4.3:登录窗口实现 .......................... 423
28.5.4 迭代4.4:好友列表窗口实现 ................... 425
28.5.5 迭代4.5:聊天窗口实现 ........................... 428
28.6 任务5:用户登录过程实现 .................................... 430
28.6.1 迭代5.1:QQ 客户端启动 ........................ 431
28.6.2 迭代5.2:客户端登录过程实现................ 432
28.6.3 迭代5.3:QQ 服务器端启动 .................... 434
28.6.4 迭代5.4:登录过程的服务器端验证 ........ 435
28.7 任务6:刷新好友列表 .. 437
28.7.1 迭代6.1:服务器端刷新好友列表 ............ 437
28.7.2 迭代6.2:客户端刷新好友列表................ 439
28.8 任务7:聊天过程实现 .. 441
28.8.1 迭代7.1:客户端用户1 向服务器发送消息 ................................................................ 442
28.8.2 迭代7.2:服务器端接收用户1 消息与转发给用户3 消息 .......................................... 443
28.8.3 迭代7.3:客户端用户3 接收用户1 消息 . 444
28.9 任务8:用户下线 ......... 445
28.9.1 迭代8.1:客户端实现 .............................. 446
28.9.2 迭代8.2:服务器端实现 ........................... 447