The Documentation Playground
This is a place to toss around ideas, write up simple recipes and create drafts of things that may eventually go into the official documentation.
If you add something here, please be sure to specify which TurboGears version you're using at the top of the document. Wikis can get stale very easily.
Don't forget to read the TurbogearsFaq first.
In preparation for the 0.9 release, documentation will be migrating from here to svn.
The follwing documents started here in the wiki, but have been migrated to svn, and will soon show up on the TurboGears.org site.
Documents already migrated
- InstallingFromSubversion : installing TurboGears from SVN repository
- RootLessInstall: Install TurboGears with (minimal) root access under OS X (needs edit)
- DreamWeaverIntegration : Using Dream Weaver as an IDE for Kid Files
- TurboGearsOnSharedHostingAccount: Deploy a TurboGears application on shared hosting provider, like http://python-hosting.com or
- ApacheIntegration : Running TurboGears behind apache using mod_rewrite migrate
- DeployWithAnEgg : Deploying your application with a Python Egg (need edit)
- ExtendingQuickstart : how do extend the tg-admin quickstart with your own files
- FancyStatus : Fancy status messages using turbogears.flash
- FlashHTML : Using XHTML in flashed messages
- LargeApplication: Information on different setups for larger applications using TurboGears
- SimpleWidgetForm : a simple form that uses widgets
- DataGridWidget : Documentation on DataGrid widget
- FormValidationWithWidgetsTwo : Validate a form widget with a FormEncode Schema
- Internationalization: how to use internationalization/localization with your application migrate
- StaticFiles: Serving Static Files
Installation and Deployment Tips
- InstallBehindProxy : How to setup easy_install to work with a proxy
- ModPythonIntegration : Integrating a TurboGears 0.8a1 install with mod_python
- ModPythonIntegration09 : Integrating a TurboGears (SVN/0.9-prerelease) install with mod_python migrate
- LighttpdIntegration : Integrating a TurboGears install with lighttpd
- NginxIntegration : Integrating a TurboGears install with Nginx
- DeployAsWindowsService: Deploy a TurboGears application as a Windows Service migrate (Fixed)
- TurboGearsHosting : Hosting companies that can host your TurboGears application.
- TurboGearsOnDreamHost: Deploy a TurboGears application on the dreamhost.com servers using Apache and FastCGI migrate
- LoggingConfigurationExamples - How to use new logging configuration
- / Daemonize a TurboGears application using DJB's daemontools. (Should work with any *nix)
- DownGrade : How to uninstall Turbogears a specific version of TG.
- NonPackagedKidTemplates: How to use python PEP 302 facilitities to make TurboKid? load non packaged kid templates
- GzipCompressing : How to use gzip_filter (formerly called gzipFilter) to compress your served content
- ZeroconfSupport : How to enable TurboGears support for the Bonjour/Zeroconf? DNS-SD protocol
Operating System Specific Considerations
Some operating systems don't work well with TurboGears at first. Share your experiences!
- SystemInstall : Central point for OS-specific information
Database Specific Considerations
- DataBaseInstalation how to set up your Database Back end
- MySql (needs cleanup )
Beyond the 20 Minute Wiki Tutorial
- FileUploadTutorial : Adding File Upload to the Tutorial
- WikiDiffTutorial : Adding 'diff' capabilities to the Tutorial
- FeedObject : Using the Feed Object migrate
- IdentityManagement : Tracking users' identities with group-based permissions migrate
- CustomModel : Creating Your Own Identity Model
- logging : Undestanding turbogears/python logging module and how they integrate
- CachingTechniques : different ways to add caching to your app
- Database agnostic SQL : Ben Bangert's great article on using SQLObject to generate database agnostic SQL, for those times when working with objects isn't what you need
- ExtendingVisitFramework: Add IP address tracking to the visit framework using a plugin
- QuickPrototyping: Making a Time Tracker in TurboGears
- IntroductionToWidgets: a painless introduction to creating and using custom widgets. migrate
- StoringAndRetrievingFilesFromDatabase: how to work with files stored in your database. This recipe uses widgets and validators to make your job easier.
These should probably get merged into main document sections.
- SimpleDelete : A simple example for deleting a record from the database.
- SelectingOption : how to set one OPTION as "selected"
- CheckedCheckBox : how to set a checkbox/radio button as "checked"
- SockFile : how to setup db access using a socket file
- WidgetlessForm : a sample form of all the input elements without widgets
- ViewsInSqlObject : An easy way to get a View into your model.py.
- RedirectHttpsRequests: Allow your application to redirect https urls properly.
- RouteByHttpMethod: Automatically route requests based on the HTTP method type.
- SQLObjectAutoUpdateField: Automatically update a field when other fields are modified.
- PassingArgumentsToCallables: Passing arguments to the callable used to populate a SelectField? or descendant.
- StartupHook : Have TG do things on startup (or shutdown)
- Serving Images Using TG to serve matplotlib (Or any dynamic) images.
- UsingModelsOutsideTurboGears: Using your model outside of your TG application.
- Financial Calculator A simple AJAX financial calculator in TurboGears.
- ConvertCookies: Convert cherrypy's SimpleCookies to cookielib.CookieJar, and back.
- JoinaTableWithItself: Something you need a datastructure that has references to itself this is tricky on SQLObject.
- DummyTemplate: Create a placeholder so you can test your code without the need for a template
- TGAdminShellHack: how to Simulate the effect of a .sql file with SQLObject
UI Design Patterns
- Simple Dragging : How to implement a simple tool-man dragging around and persisting on the db.(Drag&Drop)
- BreadCrumbNavigation? : Build bread crumb style navigation using CherryPy? introspection.
- Search Pagination : How to implement a simple Search Pagination
- Spy'ing using TurboGears. Just like Digg Spy
- RestfullPath : A baseclass for Restfull path usage
- FormValidationWithWidgets : How to validate a whole form
- AjaxGridWidget : Documentation on AjaxGrid widget
- WidgetList : List available wikis (both core and plugin)
- DataController : CRUD controller of SQLObject
- formmaker : SQLObject foriegn key displays as a select widget on a form
Other Template Systems (0.9 and higher)
- TurboCheetah : plugin for Cheetah templates
- TurboStan : plugin for Stan templates
- TurboZpt : plugin for Zope Page Templates
- TurboHtmlPy : plugin for using Formencode.htmlgen as Templates syntax
- TurboClearsilver : plugin for Clearsilver Templates
- BuffetXSLT: plugin for using Amara for XSLT templating
- BuffetMyghty : plugin for using Myghty templates
- BuffetString : plugin for using Python string Templates(.tmpl)
- SqlobjectCaching : some information about how SQLObject does its caching
- KidGotchas : don't fall for these (and note that < can be written as <)
- Unicode and i18n issues
- SQLObject Quick Reference
- QuickStart : Welcome Page script
- RhubarbExperiment : Experiment in replacing cherrpy with rhubarbtart & paste
- SimpleAdminIdeas : This document is pulling together the ideas for addyouring the automatic create/retrieve/update/delete (CRUD) features to TurboGears.
- HibernateVsSqlObject : what would it take to make SQLObject as powerful as Hibernate?
- WidgetsProposal : a work in progress for a better (I expect) widget system
- RequestedDocumentation : List of Documentation that you would like.