21.5 练习

21-1.什么是Python DB-API?它是一个好东西吗?为什么是(或为什么不是)?

21-2.描述一下数据库模块参数风格之间的不同在哪儿?

21-3.游标对象的executed()系列方法有何区别?

21-4.游标对象的fetch*()系列方法有何区别?

21-5.研究一下你使用的数据库及相应的Python模块。它是否与DB-API兼容?该模块是否提供了DB-API必须功能之外的更多特性?

21-6.针对你使用的数据库和DB-API接口程序,学习使用Type对象写一段小的脚本,至少要用到其中的一个对象。

21-7.重构。例21.1 (ushuffle_db.py)中的create()函数,一个table会先被删除,然后递归调用create()函数重建这个table。如果在重建这个table时失败,就会陷入无限循环之中。通过在异常处理中不再调用create命令(cur.execute())修复这个问题,搞一个更实用的解决方案出来。附加题:实现如果创建table失败,在返回失败之前最多重试3次。

21-8.数据库和HTML。利用现有数据库的一个表和你在第20章学到的开发知识,读出数据库表的内容,将它放到一个HTML table中去。

21-9.数据库网站开发。给我们的user shuffle例子写一个网页界面。

21-10.数据库界面编程。给我们的user shuffle例子写一个图形界面。

21-11.股票投资组合类。修改第13章股票数据的例子,将它改造为使用某一种关系数据库保存数据。

21-12.切换ORM后端为其他的数据库。将SQLAlchemy(ushuffle_sa.py)或SQLObject (ushuffle_so.py)应用程序后端数据库由MySQL切换为另一种数据库系统。