TurboGears

From Wikipedia, the free encyclopedia

TurboGears
Image:tg logo.png
Developed by Kevin Dangoor et al.
Latest release 1.0.4.4 / March 08, 2008
Written in Python
OS Cross-platform
Genre Web application framework
License MIT License, LGPL
Website http://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 March 2008, TurboGears has a large and healthy community with over 3000 users on the 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. A preview-release of TurboGears 2 is anticipated for PyCon 2008.

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 Genshi, Cheetah, Django templates, Mako, and Jinja. Several template engines can be used in the same application.

[edit] Future of TurboGears

January 2007 Kevin Dangoor retired as project leader and Alberto Valverde manages the development now as his successor. [1] Development heads towards TurboGears 2.0 now which aims to replace SQLObject with SQLAlchemy and Kid with Genshi. Because those components are integrated into other parts of the software tightly this requires re-writing a lot of the existing codebase, especially regarding the database frontend "Catwalk".

In June 2007 the community began experiments to put the TurboGears API on top of components and protocols used in Pylons and there is speculation that the two frameworks may finally be merging.[2]

[edit] Further reading

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

[edit] References

  1. ^ TurboGears has a new leader. Kevin Dangoor (2007-01-03). Retrieved on 2007-04-12.
  2. ^ Pylons Merge. Retrieved on 2007-06-27.

[edit] See also

[edit] External links