Once an SQL standard and fixed data types have been set it becomes easy to write an object relational mapper. This also offers the opportunity to create custom field types based on web.database ones.
The web.database API specifies a method object()
of the connection object. This returns an object relational mapper already setup for the database being used so that if desired the database can be accessed entirely without any knowledge of SQL:
sqlDictionary = connection.object() table = sqlDictionary['testTable'] row = table['testRow'] name = row['name'] row['birth'] = datetime.date(1980,10,10)