第四部分 多用途的客户端协议

第13章FTP

1.    基础与下载

Python有内置的ftplib。

 

connect.py连接一个FTP服务器“f = FTP('ftp.ibiblio.org')”,取得欢迎信息“f.getwelcome()”,并且打印出当前目录“f.pwd()”。

 

asciidl.py和binarydl.py分别使用ASCII和二进制模式下载文件,使用的函数分别为retrlines和retrbinary。

 

advbinarydl.py使用更底层的ntransfercmd()方法,可以使用socket的编程方式来下载文件。

2.    上传

binaryul.py使用storbinary方法以二进制模式上传数据。对应的ASICII的上传函数为storlines()

 

advbinaryul.py使用ntransfercmd方法以socket形式上传数据。

 

错误处理:可以使用ftplib.all_errors获得可能产生的所有异常。

3.    目录

nlst.py使用nlst()方法列出所有的文件和目录。

 

dir.py使用dir()方法列出所有的目录以及目录的信息。

 

dirparse.py对UNIX的目录进行解析。

 

nlstscan.py采用试错的方式判断一个条目是文件还是目录。

 

recursedl.py递归下载一个文件夹。

第14章 数据库客户端

1.    连接

connect_psycopg.py使用psycopg连接PostgreSQL。

connect_mysqldb.py使用MySQLdb连接MySQL。

connect_zxjdbc.py使用JDBC连接数据库。

2.    命令与事务

execute.py使用cursor()和execute()来执行命令。

commit.py使用了事务。

paramstyle.py测试数据库支持的参数形式。参数被用来在执行一条SQL语句的情况下插入多条数据。

executemany.py执行一条SQL语句向数据库中插入多条数据。

execute-multiple.py在不能使用executemany的情况下试图利用Python自己的优化来减少对数据库的访问次数。

3.    获取数据

fetchall.py使用cursor的fetchall()方法取得所有的数据。

fetchmany.py使用cursor的fetchmany()方法取得多条数据,数据的数量由cursor的arraysize属性决定。

fetchone.py获得一条数据。

4.    信息与数据类型

description.py按列打印cursor的description。

rowcount.py使用cur.rowcount来获得被影响的行数。

fetchonedict.py以字典的形式获得数据。其实就是使用fetchone获得数据,然后使用cursor.description获得的信息将结果加工为字典形式。

typeinsert.py利用DB-API提供的函数将Python内置类型转化为SQL中可以使用的字符。

第15章SSL

1.    基础

basic.py使用SSL连接下载一个网页。

basic-wrap.py对Python自带的ssl进行了简单的封装,添加了readline方法。

2.    OpenSSL

osslbasic.py连接远程主机下载一个网页。

osslverify.py验证远程主机的证书。