TurboGears

From Wikipedia, the free encyclopedia

Jump to: navigation, search
TurboGears
Image:tg logo.png
Developed by Kevin Dangoor et al.
Latest release 1.0.8 / December 17, 2008
Preview release 2.0.rc1 / March 23, 2009
Written in Python
Operating system Cross-platform
Type 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]

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.

Contents

[edit] TurboGears components

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.
  • SQLAlchemy can be used as an alternative model layer and is slated to be the default in TurboGears >= 1.1.
  • 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.
  • Genshi is the successor project to Kid and replaces the latter as the default templating engine in TurboGears >= 1.1. It is nearly 100% syntax-compatible to Kid. See also the "Template plugins" section below.
  • 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.

[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] Project history

January 2007 Kevin Dangoor retired as project leader and Alberto Valverde managed the project as his successor,[1] but subsequently stepped down due to other personal commitments. Alberto is still involved in the TurboGears community through his ToscaWidgets project. The TurboGears project is now managed jointly by a group of about half a dozen core developers under the leadership of Mark Ramm (as the TurboGears 2 development lead) and Florent Aide (as the Turbogears 1.x release manager).

In June 2007 the community began experiments to put the TurboGears API on top of components and protocols used in Pylons and there was speculation that the two frameworks may finally be merging.[2] However, the official TurboGears 2 documentation states that this is unlikely to happen, due to the "different, but compatible priorities"[3] of both projects.

As of Fall 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. The development progresses at a moderate but steady pace and was also newly fueled by a successful participation of the project as a Google Summer of Code mentoring organization in 2008. TurboGears 1.1 is well underway, with several beta releases in 2008, and TurboGears 2 entered the release candidate phase as of March 2009.

[edit] Future of TurboGears

Development currently happens in two main branches:

  1. The TurboGears 1.x branch, which is based on the original code-base and uses CherryPy as the underlying web application server.
  2. TurboGears 2 (trunk), which basically rebuild the TurboGears 1 API on top of Pylons.

TurboGears 1.1 will be a newer version of TurboGears 1.0, which continues to support exactly the same API. The main difference between 1.0 and 1.1 will be the choice of default templating engine and default ORM, i.e. it aims to replace SQLObject with SQLAlchemy and Kid with Genshi. The 1.1 branch is regarded as an intermediate step towards the Pylons-based 2.0 version. Recently, however, there has been made good progress to adapt the 1.x code-base to CherryPy 3.0 and a new 1.5 branch, which is currently in alpha-state, has been created.

A stable version of TurboGears 2 is expected to be released in the first quarter 2009.

[edit] Further reading

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

[edit] References

[edit] See also

[edit] External links

Personal tools