TurboGears

From Wikipedia, the free encyclopedia

TurboGears
Image:tg_logo.png
Developer: Kevin Dangoor
Latest release: 1.0.1 / January 22, 2007
OS: Cross-platform
Use: Web application framework
License: MIT License, LGPL
Website: www.turbogears.org

TurboGears is a Python web application framework consisting of several underlying components such as MochiKit, SQLObject, CherryPy and Kid.

TurboGears was created in 2005 by Kevin Dangoor as the framework behind the as yet unreleased Zesty News product. When he released it as an open source framework in the end of September 2005, it received more than 30,000 screencast downloads in the first 3 months.[citation needed]

As of February 2007, TurboGears has a large and vibrant community with nearly 3000 users on the high traffic TurboGears mailing list, a book from Prentice Hall published in Nov. '06, and a number of open source and proprietary TurboGears applications deployed to the real world.

TurboGears is designed around the model-view-controller architecture, much like Struts or Ruby on Rails, designed to make rapid web application development in Python easier and more maintainable.

TurboGears components are as follows:

  • SQLObject as the Model - data backend that can create a database or interface with existing data on many database servers.
  • Kid as the View' - XHTML frontend templating engine where all templates are valid XHTML or XML files that are usually made in a way that allows opening these templates as simple XHTML files to check the design. At the same time features are provided to embed snippets of Python in a XMLish manner.
  • CherryPy as the Controller - middleware that allows web applications to be programmed by writing event handlers that return data to (in TurboGears case) templates. The same data can also be received in Ajax fashion as a JSON data stream.
  • MochiKit is an optional piece of TurboGears - it is a JavaScript library to make programming in JavaScript more Pythonic. It is mostly used for implementing Ajax features as it provides an interface to get JSON data streams in asynchronous manner.

Contents

[edit] Template plugins

Templating languages other than Kid can be used through a plugin system. Plugins currently exist for Cheetah, Django templates, Genshi and Jinja. Several template engines can be used in the same application.

[edit] See also

[edit] Further reading

Ramm, M (Nov 7, 2006). Rapid Web Applications with TurboGears, Prentice Hall. ISBN 0132433885

[edit] External links