图书目录

目录

推荐序 .................................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