| 21-1. | Database API. What is the Python DB-API? Is it a good thing? Why (or why not)? |
| 21-2. | Database API. Describe the differences between the database module parameter styles (see the paramstyle module attribute). |
| 21-3. | Cursor Objects. What are the differences between the cursor execute*() methods? |
| 21-4. | Cursor Objects. What are the differences between the cursor fetch*() methods? |
| 21-5. | Database Adapters. Research your RDBMS and its Python module. Is it DB-API compliant? What additional features are available for that module that are extras not required by the API? |
| 21-6. | Type Objects. Study using Type objects for your database and DB-API adapter and write a small script that uses at least one of those objects. |
| 21-7. | Refactoring. In the create() function of Example 21.1 (ushuffle_db.py), a table that already exists is dropped and re-created by recursively calling create() again. This is dangerous in case the re-creation of the table fails (again) because you will then have infinite recursion. Fix this problem by creating a more practical solution that does not involve copying the create query (cur.execute()) again in the exception handler. Extra Credit: Try to recreate the table a maximum of three times before returning failure back to the caller. |
| 21-8. | Database and HTML. Take any existing database table, and use the knowledge you developed from Chapter 20 and output the contents of a database table into an HTML table. |
| 21-9. | Web Programming and Databases. Take our "user shuffle" example (ushuffle_db.py), and create a Web interface for it. |
| 21-10. | GUI Programming and Databases. Take our "user shuffle" example (ushuffle_db.py), and throw a GUI for it. |
| 21-11. | Stock Portfolio Class. Update the stock database example from Chapter 13 to use a relational database. |
| 21-12. | Switching ORMs to a Different RDBMS. Take either the SQLAlchemy (ushuffle_sa.py) or SQLObject (ushuffle_so.py) application and swap out MySQL as the back-end RDBMS for another one of your choice. |