第四部分 互联网编程 745
第12章 网络脚本 745
“接收、登录和退出” 745
Python互联网发展方案 750
探索互联网 754
套接字编程 760
处理多个客户端 775
使套接字看起来像文件和数据流 798
一个简单的Python文件服务器 811
第13章 客户端编程 823
“与我连接!” 823
FTP:通过网络传输文件 824
用ftplib传输文件 824
用ftplib传输目录 843
用ftplib传输目录树 861
处理Internet电子邮件 868
POP:抓取电子邮件 870
SMTP:发送电子邮件 878
email:解析和撰写邮件内容 889
一个基于控制台的电子邮件客户端 914
mailtools工具包 923
NNTP:访问新闻组 957
HTTP:访问网站 959
再次探讨urllib包 962
客户端编程的其他选择 967
第14章 PyMailGUI客户端 969
“卢克,快用源码!” 969
PyMailGUI的主要改动 975
演示PyMailGUI 984
PyMailGUI的实现 1022
改进建议 1073
第15章 服务器端编程 1082
“哦,我们织了怎样一张复杂的网啊” 1082
什么是服务器端CGI脚本? 1083
运行服务器端示例 1086
沿着CGI学习曲线继续攀登 1091
在CGI脚本里保存状态信息 1128
Hello World选择器 1136
重构代码,使其更容易维护 1145
关于HTML和URL转义的更多讨论 1154
向客户端和服务器传输文件 1161
第16章 PyMailCGI服务器 1179
“停留芝加哥期间的任务” 1179
PyMailCGI网站 1180
根页面 1188
通过SMTP发送邮件 1191
处理收到的邮件 1213
实用工具模块 1222
Web脚本编程要考虑的平衡 1237
第五部分 工具和技巧 1247
第17章 数据库和持久化 1247
“给我来一份持久化,但不要加pickle” 1247
Python中可选的持久化方案 1247
DBM文件 1249
Pickle对象 1253
Shelve文件 1259
面向对象的数据库ZODB 1268
SQL数据库接口 1271
ORM:对象关系映射 1296
PyForm:一个持久化对象的查看器(扩展阅读) 1297
第18章 数据结构 1299
“玫瑰是红色的,紫罗兰是蓝色的;列表是可变的,而集合是个傻瓜” 1299
堆栈实现 1300
集合的实现 1312
实现内置类型的子类 1322
二叉搜索树 1323
检索图 1328
队列的排列组合 1333
反序和排序 1335
PyTree:一个通用的树对象浏览器 1339
第19章 文本和语言 1342
“快看杰克做功课。功课,杰克,功课” 1342
Python中文本处理的策略 1342
字符串方法工具 1343
正则表达式模式匹配 1352
XML和HTML解析 1366
高级语言工具 1375
定制语言解析器 1377
PyCalc:一个计算器程序/对象 1393
第20章 Python/C集成 1417
“迷失在C中” 1417
在C中扩展Python:概述 1420
一个简单的C扩展模块 1421
SWIG集成代码生成器 1424
封装C环境调用 1429
用SWIG封装C++类 1435
其他扩展工具 1445
在C中嵌入Python:概述 1447
基本嵌入技巧 1450
注册回调处理器对象 1462
在C中使用Python类 1466
其他集成相关话题 1469
第六部分 尾声 1475
第21章 结语:Python与开发周期 1475
“全书至此完结,以下是生活的意义” 1476
“我们编程的方式有些问题” 1476
“Gilligan因素” 1476
做正确的事 1477
走进:Python 1478
在沉没的泰坦尼克号上 1483
那么“Python:续集”打算讲点什么? 1486
最后的总结 1486