《Python第三方库开发应用实战》循序渐进地讲解了Python中常用第三方库的核心知识,并通过具体实例的实现过程演练了各个库的使用流程。全书共12章,分别讲解了Tornado框架、Django框架、Flask框架、数据库存储框架、数据库驱动框架、使用ORM操作数据库、特殊文本格式处理、图像处理、图形用户界面、数据可视化、第三方多媒体库、第三方网络开发库。
本书适用于已经了解了Python基础语法的读者,也适用于希望进一步提高自己Python开发水平的读者,还可以作为大专院校相关专业的师生用书和培训学校的教材。
分别讲解了Tornado框架、Django框架、Flask框架、数据库存储框架、数据库驱动框架、使用ORM操作数据库、特殊文本格式处理、图像处理、图形用户界面、数据可视化、第三方多媒体库、第三方网络开发库。
1.内容全面。
本书内容涵盖了12类常用的Python第三方库,通过案例,循序渐进地讲解了这些库中函数的使用方法,帮助读者快速掌握和应用这些库。
2.通过实例驱动教学。
本书采用理论加实例的讲解方式,通过实例展示知识点的应用,达到了学以致用的目的。
3.提供更为广泛的解决方案。
通过本书的学习,读者可以构建自己的Python工具箱。借助该工具箱,读者能够使用Python 开发各种类型的应用程序。
4.提供示例源代码下载服务,可在异步社区轻松下载。
张有菊,计算机硕士,精通UNIX平台开发,12年C++开发经验,4年Python开发经验,参与研发了浪潮云海OS系统,这是中国首款自主研发的云数据中心操作系统,深度融合OpenStack,是开放、融合、安全的云数据中心操作系统,支持最广泛的异构资源管理和跨云整合。
目 录
第 1章 Tornado框架 1
1.1 Tornado框架简介 2
1.2 Tornado开发基础 2
1.2.1 编写第 一个Tornado程序 2
1.2.2 获取请求参数 3
1.2.3 使用cookie 5
1.2.4 URL转向 6
1.2.5 使用静态资源文件 7
1.3 表单和模板操作 7
1.3.1 一个基本的注册表单 7
1.3.2 在模板中使用函数 9
1.4 数据库操作 12
1.4.1 实现持久化Web服务 12
1.4.2 图书管理系统 15
第 2章 使用Django 20
2.1 Django简介 21
2.2 Django开发基础 21
2.2.1 搭建Django环境 21
2.2.2 常用的Django命令 22
2.2.3 第 一个Django项目 23
2.2.4 在URL中传递参数 25
2.2.5 使用模板 27
2.2.6 使用表单 31
2.2.7 实现基本的数据库操作 32
2.3 使用Django后台系统开发一个
博客系统 33
2.4 开发一个新闻聚合系统 36
2.4.1 基本设置 36
2.4.2 获取聚合信息 37
2.4.3 视图处理 40
2.4.4 模板文件 42
2.5 开发一个在线商城系统 45
2.5.1 系统设置 45
2.5.2 前台商城展示模块 46
2.5.3 购物车模块 49
2.5.4 订单模块 53
2.6 使用Mezzanine库 56
2.7 使用Cartridge库 58
2.8 使用django-oscar库 61
第3章 Flask框架 62
3.1 Flask开发基础 63
3.1.1 Flask框架简介 63
3.1.2 Django和Flask的对比 65
3.1.3 安装Flask 65
3.1.4 第 一个Flask Web程序 66
3.2 基于Flask开发Web程序 68
3.2.1 传递URL参数 68
3.2.2 使用会话和cookie 70
3.2.3 使用Flask-Script扩展 71
3.2.4 使用模板 72
3.2.5 使用Flask-Bootstrap
扩展 74
3.2.6 使用Flask-Moment扩展
本地化日期和时间 76
3.3 表单操作 78
3.3.1 使用Flask-WTF扩展 78
3.3.2 文件上传 81
3.4 使用数据库 82
3.4.1 Python数据库框架 82
3.4.2 会员注册和登录 82
3.4.3 使用Flask-SQLAlchemy
管理数据库 84
3.5 收发电子邮件 87
3.5.1 使用Flask-Mail扩展 87
3.5.2 使用SendGrid发送
邮件 90
3.6 Flask+MySQL+ SqlAlchemy
信息发布系统 92
3.6.1 使用Virtualenv创建
虚拟环境 92
3.6.2 使用Flask实现数据库
迁移 92
3.6.3 具体实现 93
3.7 图书借阅管理系统 100
3.7.1 数据库设置 100
3.7.2 登录验证与管理 101
3.7.3 安全检查与页面跳转
管理 102
3.7.4 后台用户管理 102
3.7.5 图书管理 103
3.7.6 前台用户管理 104
第4章 数据库存储框架 107
4.1 安装与使用pickleDB 108
4.1.1 安装pickleDB 108
4.1.2 使用pickleDB 108
4.2 安装与使用TinyDB 108
4.2.1 安装TinyDB 109
4.2.2 使用TinyDB 109
4.3 如何使用ZODB 110
4.3.1 安装并使用ZODB 110
4.3.2 模拟银行存取款系统 112
4.4 个人日志系统(使用Flask与
TinyDB实现) 114
4.4.1 系统设置 114
4.4.2 后台管理 117
4.4.3 登录认证管理 118
4.4.4 前台日志展示 121
4.4.5 系统模板 124
第5章 数据库驱动框架 131
5.1 连接MySQL数据库 132
5.1.1 使用mysqlclient 132
5.1.2 使用PyMySQL 134
5.2 连接PostgreSQL数据库 146
5.2.1 下载并安装
PostgreSQL 146
5.2.2 使用psycopg2模块 148
5.2.3 使用queries模块 155
5.3 连接SQLite3数据库 156
5.4 连接SQL Server数据库 158
5.5 连接NoSQL数据库 161
5.5.1 使用cassandra-driver连接
Cassandra数据库 161
5.5.2 使用PyMongo驱动连接
MongoDB数据库 162
5.5.3 使用redis-py连接
Redis 165
第6章 使用ORM操作数据库 169
6.1 ORM的背景 170
6.2 使用mysqlclient连接
数据库 170
6.3 使用Peewee连接数据库 174
6.3.1 Peewee的基本用法 174
6.3.2 使用Peewee、Flask与
MySQL开发一个在线
留言系统 178
6.4 使用Pony连接数据库 181
6.4.1 Pony的基础知识 181
6.4.2 操作SQLite数据库 181
6.4.3 操作MySQL数据库 186
6.5 使用mongoengine连接
MongoDB数据库 188
第7章 特殊文本格式处理 191
7.1 使用Tablib模块 192
7.1.1 基本用法 192
7.1.2 操作数据集中指定的
行和列 193
7.1.3 删除并导出不同格式的
数据 193
7.1.4 生成一个Excel文件 194
7.1.5 处理多个数据集 195
7.1.6 使用标签过滤数据 197
7.1.7 分离表格中的数据 197
7.2 使用Office模块/库 198
7.2.1 使用openpyxl模块 198
7.2.2 使用pyexcel模块 202
7.2.3 使用python-docx模块 208
7.2.4 使用xlrd和xlwt
库读写Excel 219
7.2.5 使用xlsxwriter库 221
7.3 使用PDF模块/库 229
7.3.1 使用PDFMiner模块 229
7.3.2 使用PyPDF2 233
7.3.3 使用Reportlab库 237
第8章 图像处理 242
8.1 使用Pillow库 243
8.1.1 安装Pillow库 243
8.1.2 使用Image模块 243
8.1.3 绘制随机漫步图 249
8.1.4 使用ImageChops模块
合成图片 251
8.1.5 使用ImageEnhance模块
增强图像 253
8.1.6 使用ImageFilter模块
实现滤镜功能 255
8.1.7 使用ImageDraw模块
绘制图像 256
8.1.8 使用ImageFont模块设置
字体 258
8.1.9 绘制指定年份的日历 259
8.2 使用hmap库 263
8.3 使用pyBarcode库创建
条形码 264
8.4 使用qrcode库创建二维码 266
8.5 使用scikit-image库 269
8.5.1 读取和显示 270
8.5.2 像素操作 272
8.5.3 转换操作 274
8.5.4 绘制图像 276
8.5.5 图像批处理 280
8.5.6 缩放和旋转 281
8.6 使用face_recognition库实现
人脸识别 283
8.6.1 搭建开发环境 283
8.6.2 面部特征 284
8.6.3 识别人脸 286
8.6.4 摄像头实时识别 289
第9章 图形用户界面 290
9.1 使用PyQt库 291
9.1.1 第 一个GUI程序 291
9.1.2 菜单和工具栏 293
9.1.3 界面布局 295
9.1.4 事件处理 299
9.1.5 对话框 303
9.1.6 组件 307
9.1.7 使用Eric6提高开发
效率 316
9.2 使用pyglet库 317
9.2.1 安装并尝试使用
pyglet 317
9.2.2 实现OpenGL操作 319
9.2.3 开发一个pyglet游戏 320
9.3 使用toga库 330
9.3.1 安装toga库并创建第 一个
toga示例 330
9.3.2 使用基本组件 331
9.3.3 使用布局组件 332
9.3.4 使用绘图组件 333
9.4 使用wxPython库 334
9.4.1 安装并使用
wxPython库 334
9.4.2 基本组件 335
第 10章 数据可视化 340
10.1 使用Matplotlib库 341
10.1.1 搭建Matplotlib库的
使用环境 341
10.1.2 初级绘图 342
10.1.3 自定义散点图样式 345
10.1.4 绘制柱状图 346
10.1.5 绘制多幅子图 350
10.1.6 绘制曲线 352
10.1.7 绘制随机漫步图 357
10.1.8 大数据分析某年的最
高温度和最低温度 360
10.1.9 在Tkinter中使用
Matplotlib库绘制
图表 361
10.2 使用pygal库 362
10.2.1 安装pygal库 362
10.2.2 使用pygal库模拟
掷骰子 363
10.3 使用csvkit库处理CSV
文件 365
10.4 使用Pandas库 371
10.4.1 安装Pandas库 371
10.4.2 从CSV文件读取
数据 371
10.4.3 选择指定数据 376
10.4.4 日期相关操作 379
10.5 使用NumPy库 383
10.5.1 安装NumPy库 383
10.5.2 数组对象 384
10.5.3 使用通用函数 388
10.5.4 使用Matplotlib库 393
第 11章 第三方多媒体库 395
11.1 使用audiolazy库处理数字
信号 396
11.1.1 安装并尝试使用
audiolazy库 396
11.1.2 实现巴特沃斯滤波器 396
11.2 使用audioread库实现音频
解码 397
11.3 使用eyeD3库处理音频 398
11.3.1 安装并尝试使用
eyeD3库 398
11.3.2 使用eyeD3库编程 398
11.3.3 MP3文件编辑器 399
11.4 使用m3u8库 405
11.4.1 m3u8库的介绍和
安装 406
11.4.2 下载m3u8视频并转换为
MP4文件 406
11.5 使用mutagen库 407
11.5.1 安装并尝试使用
mutagen库 407
11.5.2 获取指定音频文件的
标签信息 408
11.5.3 批量设置视频文件的
封面图片 409
11.6 使用pydub库 414
11.6.1 安装并尝试使用
pydub库 415
11.6.2 使用AudioSegment 415
11.6.3 截取指定的MP3
文件 419
11.7 使用tinytag库 420
11.7.1 安装并尝试使用
tinytag库 420
11.7.2 开发一个MP3
播放器 421
11.8 使用moviepy库 429
11.8.1 安装moviepy库 429
11.8.2 剪切一段视频 429
11.8.3 视频合成 430
11.8.4 多屏显示 430
11.8.5 设置视频属性 432
11.8.6 使用moviepy库和
Matplotlib库实现
数据的动态可视化 433
11.8.7 动画合成 434
11.8.8 使用moviepy库和
numpy库实现文本
动态化 435
11.9 使用scikit-video库 436
11.9.1 安装并尝试使用
scikit-video库 436
11.9.2 写入视频 437
11.9.3 视频基准测试 438
11.9.4 图像的读取和写入 439
11.9.5 视频的读取和写入 440
第 12章 第三方网络开发库 442
12.1 处理HTML和XML 443
12.1.1 使用Beautiful Soup库 443
12.1.2 使用bleach库 449
12.1.3 使用cssutils库 454
12.1.4 使用html5lib库 455
12.1.5 使用MarkupSafe库 456
12.1.6 使用PyQuery库 457
12.2 处理HTTP 461
12.2.1 使用aiohttp库 461
12.2.2 使用requests库 463
12.2.3 使用httplib2库 466
12.2.4 使用urllib3库 469
12.3 电子邮件 472
12.3.1 使用envelopes库 472
12.3.2 使用Inbox库 473
12.4 处理URL 476
12.4.1 使用furl库 476
12.4.2 使用purl库 477
12.4.3 使用webargs库 479