Ultimately, the final product in a webapp appears in the form of executable code. Because of this, code makes a good frame of reference when talking about a programming tool. The quickest way to have some code with TurboGears is using the tg-admin tool.
tg-admin is a command line companion for the TurboGears library. It works through subcommands that let you: create a new project, manipulate your database, and interact in an object-oriented way with your database.
The reference for tg-admin provides the details on the commands. If you just run tg-admin without specifying any commands, you'll see the list of what's available.
For now, we'll use the "quickstart" command, so that we have some code to use as a frame of reference:
tg-admin quickstart
If you add the "--help" option to the commands, you can see what options each command takes. For quickstart, you can specify everything on the command line or be prompted for the information needed to get going. Odds are that you won't run quickstart that often. You never know, though. It's really easy to get going!
We'll just use "gs" (for "getting started") as our project and package names.
Enter project name: gs Enter package name [gs]: Selected and implied templates: TurboGears#tgbase tg base template TurboGears#turbogears web framework Variables: package: gs project: gs Creating template tgbase Creating ./gs/ Recursing into +einame+.egg-info Creating ./gs/gs.egg-info/ Copying PKG-INFO to ./gs/gs.egg-info/PKG-INFO Copying paster_plugins.txt to ./gs/gs.egg-info/paster_plugins.txt Copying sqlobject.txt_tmpl to ./gs/gs.egg-info/sqlobject.txt Recursing into +package+ Creating ./gs/gs/ Copying __init__.py to ./gs/gs/__init__.py Copying release.py_tmpl to ./gs/gs/release.py Recursing into static Creating ./gs/gs/static/ Recursing into css Creating ./gs/gs/static/css/ Copying empty to ./gs/gs/static/css/empty Recursing into images Creating ./gs/gs/static/images/ Copying favicon.ico to ./gs/gs/static/images/favicon.ico Copying tg_under_the_hood.png to ./gs/gs/static/images/tg_under_the_hood.png Recursing into javascript Creating ./gs/gs/static/javascript/ Copying empty to ./gs/gs/static/javascript/empty Recursing into templates Creating ./gs/gs/templates/ Copying __init__.py to ./gs/gs/templates/__init__.py Creating template turbogears Recursing into +package+ Recursing into config Creating ./gs/gs/config/ Copying __init__.py to ./gs/gs/config/__init__.py Copying app.cfg_tmpl to ./gs/gs/config/app.cfg Copying controllers.py_tmpl to ./gs/gs/controllers.py Copying model.py_tmpl to ./gs/gs/model.py Recursing into sqlobject-history Creating ./gs/gs/sqlobject-history/ Copying empty to ./gs/gs/sqlobject-history/empty Recursing into templates Copying login.kid to ./gs/gs/templates/login.kid Copying master.kid to ./gs/gs/templates/master.kid Copying welcome.kid to ./gs/gs/templates/welcome.kid Recursing into tests Creating ./gs/gs/tests/ Copying __init__.py to ./gs/gs/tests/__init__.py Copying test_controllers.py_tmpl to ./gs/gs/tests/test_controllers.py Copying test_model.py_tmpl to ./gs/gs/tests/test_model.py Copying README.txt_tmpl to ./gs/README.txt Copying dev.cfg_tmpl to ./gs/dev.cfg Copying prod.cfg_tmpl to ./gs/prod.cfg Copying setup.py_tmpl to ./gs/setup.py Copying start-+package+.py_tmpl to ./gs/start-gs.py Running /usr/local/bin/python setup.py egg_info Adding TurboGears to paster_plugins.txt running egg_info writing requirements to gs.egg-info/requires.txt writing gs.egg-info/PKG-INFO writing top-level names to gs.egg-info/top_level.txt reading manifest file 'gs.egg-info/SOURCES.txt' writing manifest file 'gs.egg-info/SOURCES.txt'
This command gave us a clean-slate web application, ready to start filling in with real code.