第四部分 多用途的客户端协议
第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验证远程主机的证书。