Here is a complete code listing so that you can experiment:
#!/usr/bin/env python import sys; sys.path.append('../../../') # show python where the modules are import web.database, web.database.object connection = web.database.connect( adapter="snakesql", database="database-object-simple", autoCreate = 1, ) cursor = connection.cursor() person = web.database.object.Table("Person") person.addColumn(web.database.object.String(name="firstName")) person.addColumn(web.database.object.String(name="surname")) database = web.database.object.Database() database.addTable(person) database.init(cursor) if not database.tablesExist(): database.createTables() print "Created Table" john = database['Person'].insert(firstName="John", surname="Smith") print john['firstName'] print john['surname'] john['surname'] = 'Doe' print john['surname'] print john['rowid'] row1 = database['Person'][1] row2 = database['Person'].row(1) print row1 == row2 == john connection.close() # Close the connection without saving changes
The output is:
Created Table John Smith Doe 1 1
Note:
If you run the code more than once you will be adding lots of John Smiths to the test database and so the rowid value will be one larger each time you run the code. After the first time you run the code the line Created Table
will not be output since the table will already be created.