Table of Contents
After creating your tables, you can test them and add rows using an interactive Python shell suited to your project. To start the shell, type:
$ tg-admin shell
Any data you add or modify in this shell is handled in a transaction. If you quit without committing, no changes will be written to the database. To commit the transaction, type this in the shell after making your changes:
SQLObject user use:
Here’s how I tested my tables using the interactive shell. You should follow along in order to insert some items into your database:
>>> u1 = User(email="email@example.com") >>> u1.email 'firstname.lastname@example.org' >>> u1.id 1 >>> u1.lists  >>> l1 = List(title="Groceries", user=u1) >>> l1.title u'Groceries' >>> l1.user <User 1 email@example.com'> >>> l1.user.email 'firstname.lastname@example.org' >>> l1.items  >>> u1.lists [<List 1 title=u'Groceries' userID=1>] >>> i1 = Item(list=l1, value="Milk") >>> i2 = Item(list=l1, value="Eggs") >>> i3 = Item(list=l1, value="Bread") >>> [item.value for item in l1.items] [u'Milk', u'Eggs', u'Bread'] >>> len(l1.items) 3
Remember to commit your changes if you want them to be saved:
If your tables are working and sufficient, then you can close
model.py, you won’t need to change it for the rest this tutorial.
$ tg-admin toolbox
and select Catwalk. Note that CatWalk works only with SQLObject, however.
When you install a TurboGears application with the name
python setup.py install or
python setup.py develop, then this
will also install a start script with the name
and a “bootstrap” script
bootstrap-myapp. The latter will
bootstrap_model() function inside your
By default this calls two functions to create all database tables
for your model and optionally create a user (if you run the script
--user option. This is a very convenient way to create
a starter database, as you can easily extend this mechanism by calling
more functions filling other tables with data to start with.