TechBookReport logo



Keywords: Web development, Python, Ajax, TurboGears

Title: Rapid Web Applications With TurboGears

Author: Mark Ramm, Kevin Dangoor and Gigi Sayfan

Publisher: Prentice Hall

ISBN: 0132433885

Media: Book

Level: Some Python required

Verdict: Not a brilliant read, but lots of useful material covered.

 

While Ruby On Rails sets to get all of the publicity, it's not the only game in town when it comes to data-driven web application frameworks. In fact it seems that every developer in the world seems to be working on one at the moment. Some of these frameworks have already made a splash, and in the Python world TurboGears is one of those. As with RoR it's possible to create a functional Ajaxed web app, including a back-end database in a matter of minutes. Unlike RoR however, in this case it's Python doing all the heavy lifting in the background.

For those interested in learning both how to use and how to extend TurboGears help is at hand in the form of 'Rapid Web Applications with TurboGears', published as part of the Prentice Hall Open Source Software Development series. Sporting a number of different authors, the book aims to be a complete introduction to TurboGears, effectively starting from scratch and assuming no prior knowledge of the software. How well it succeeds, however, is open to question.

The opening section of the book walks the reader through an introduction, a quick tutorial and an over-view of the TurboGears architecture (including all of the major components such as SQLObject, CherryPy and Kid). It includes initial installation and a simple Hello World app to show how it all fits together. This is followed by a two chapter section that builds a complete working app (a social bookmarking site). The third section of the book looks at a more complete real-world example, the WhatWhat Status project management application.

With these sample applications out of the way attention turns back to the internals of TurboGears, focusing first on object relational mapping with SQLObject. On the presentation side of things there are chapters on the Kid templating engine and the MochiKit Javascript libraries (for the Ajax functionality) and on TurboGears widgets. The controller/logic part of the architecture is handled by CherryPy, which is the subject of a couple of chapters.

Additional topics include deployment, internationalisation, testing, identity and security and more.

While there's no faulting the range of topics that the book covers, the quality of the writing and the sample source code is variable. Anyone wanting to follow along with the code would be well advised to check the addenda and corrections on the book's web site - there are plenty of typos in the code to trip the unwary, particularly the Python novice. While it's certainly true that the book can be read by those with little prior experience of Python, it's also true to say that the more you do know the more you'll get from the book. In terms of the writing the quality varies from the passable to the slightly patronising, it certainly doesn't take off as a great read.

For those wanting to learn more about TurboGears there is a lot of useful material covered in this book, though you have to tread with care when looking at the sample code.


Hit the 'back' key in your browser to return to subject index page

Return to home page

Contents © TechBookReport 2007. Published March 21 2007