Welcome to Linux Knowledge Base and Tutorial
"The place where you learn linux"
Let The Music Play: Join EFF Today

 Create an AccountHome | Submit News | Your Account  

Tutorial Menu
Linux Tutorial Home
Table of Contents

· Introduction to Operating Systems
· Linux Basics
· Working with the System
· Shells and Utilities
· Editing Files
· Basic Administration
· The Operating System
· The X Windowing System
· The Computer Itself
· Networking
· System Monitoring
· Solving Problems
· Security
· Installing and Upgrading
· Linux and Windows

Glossary
MoreInfo
Man Pages
Linux Topics
Test Your Knowledge

Site Menu
Site Map
FAQ
Copyright Info
Terms of Use
Privacy Info
Disclaimer
WorkBoard
Thanks
Donations
Advertising
Masthead / Impressum
Your Account

Communication
Feedback
Forums
Private Messages
Recommend Us
Surveys

Features
HOWTOs
News
News Archive
NukeSentinel
Reviews
Submit News
Topics
User Articles
Web Links

Google
Google


The Web
linux-tutorial.info

Who's Online
There are currently, 158 guest(s) and 0 member(s) that are online.

You are an Anonymous user. You can register for free by clicking here

  

Rapid Web Applications with TurboGears: Using Python to Create Ajax-Powered Sites

Authors: Mark Ramm, Kevin Dangoor, Gigi Sayfan

Format: Paperback: 504 pages

Publisher: Prentice Hall PTR; 1st edition (November 7, 2006)

ISBN: 0132433885



James Pyles

November 15, 2006



One of the reviews in the front of this book states in part: 'Dear PHP, It's over between us. You can keep the kitchen sink, but I want my MVC...' It's sad to see a relationship break up but apparently something better came along. While I've already been sold on Python, I wanted to know how TurboGears stacked up as a Python framework and how well the Ramm/Dangoor/Sayfan

book presents it. Since Kevin Dangoor created TurboGears, I imagined that 'Rapid Web Applications with TurboGears' wouldn't lack for technical accuracy (of course, you never know) but would it really help me to '...get productive with TurboGears - fast'? Let's find out.



A little info first. According to The Official TurboGears Site, TurboGears can '...

Create a database-driven, ready-to-extend application in minutes. All with designer friendly templates, easy AJAX on the browser side and on the server side, not a single SQL query in sight with code that is as natural as writing a function
'. Everyone wants high level functionality that's easy and quick to create. Keep in mind though, that the book is targeted for 'experienced web developers' so if you've just been dabbling with HTML, CSS, and JavaScript, you might want to skip this book for now (The book 'assumes' the reader is experienced with XHTML, CSS, JavaScript, Python and has at least a passing knowledge of Relational Databases).



Rapid Web Applications with TurboGears is divided into eight parts including the appendix:





  1. TurboGears Fundamentals

  2. Building a Simple TurboGears Application

  3. Exploring a Real World TurboGears Application

  4. SQLObject and TurboGears Models

  5. TurboGears View Technologies

  6. CherryPy and TurboGears Decorators

  7. TurboGears Extras

  8. Appendix: SQLAlchemy





That being said, the book's organization also has a broader structure containing just two parts...the fundamental principles and practices of building TurboGears apps and all of the details that go

with TurboGears such as CherryPy, MochiKit, and SQLObject.



TurboGears is like a container holding all of the tools you need to create web applications. These tools include how to access a database, how to manage web requests, and how to produce final web pages. Traditionally, these tools don't always work well together. It's a bit like mixing apples, ice cream, and beef stew, coming up with a dinner that fits perfectly on one plate and tastes wonderful. That's what TurboGears is designed to do.



As a document, Rapid Web Applications with TurboGears is designed to do the same thing;

be a perfect (well...nothing's "perfect" but it can be very, very good) container for presenting, teaching the basics, and helping the reader become an advanced user of TurboGears. As an added plus, the authors maintain

their own website http://www.turbogearsbook.com/ which

contains lots of TurboGears code, tutorials, links to package and Python resources and more. It's apparent that the authors are more than serious about giving the reader every chance to learn TurboGears.



Despite the level of depth the book promises, it starts out in an easy-to-understand, introductory (and occasionally humorous) manner. Asychronous JavaScript, XML (Ajax), HTML and MVC are all presented in an amiable and disarming way as though the book was written for friends rather than a gaggle of software gurus and guru

wannabes. Most of all, from the very start of the book, the reader sees that TurboGears functionality is expanding and expanding rapidly. The second edition may be needed fairly soon.



The action really begins when you hit Chapter 2 and find out how to install TurboGears on either Linux, Windows, or Mac OS X. Being an open-source project, TurboGears leans towards a Linux platform but can be used just as well on the other operating systems. CLI knowledge on your OS of choice is assumed. Frankly, more Linux users seem comfortable using the shell than Windows or Mac users so I suppose that gives them (us) a little advantage.



No sooner is TurboGears (and SQLite3 and pysqlite) installed then you are building your first 'Hello World!' TG app (Ok, it's programmer's kindergarten, but you have to paint a few still lifes before you tackle 'Starry Night'). The MVC (model-viewer-controller) paradigm comes next (less experienced web developers might have to slow down at this point). In practically the same breath, SQLObject, CherryPy handles and Kid templates come along. Blink once more and the chapter is over.



I appreciated the 'bite-sized' (or is that 'byte-sized'...yeah...terrible pun) chapters. A lot of books present new concepts and activities in 40, 50, and 60 page chapters, bringing the reader to his or her knees long before they have any hope of finishing.



Like climbing a ladder, Part II builds on Part I (literally as well as figuratively) by taking the reader through building some simple apps such as a bookmark collection site and then testing the apps. Don't throw out the bookmark app when the chapter is over; you'll need it to enhance your new skill sets.



Now that the reader is feeling more comfortable, more complex models are presented relative to "WhatWhat Status" WhatWhat Status is a project management app that's more of a 'communication tool' keeping group code owners on track and providing a vision of how a larger TurboGears app can be constructed. It's relevant to managing

Controllers, Views, JavaScript, RSS, and more.



As the reader progresses through the pages, SQLObject Basics come up including ORM (object relational mapper) and simple database queries. Moving quickly, the reader graduates to using their skills for Mastering SQLObject. Gracefully leaving SQLObject behind, you move into View

Technologies such as Kid templates and using MochiKit to write better JavaScript and Ajax. Hang on a little longer and you'll revisit CSS, XHTML, and JavaScript in the context of TurboGears widgets.



The CherryPy (developers come up with the 'cuteist' names....:rolleyes:) URL parsing is next up a bat and you learn how it handles HTTP requests and responses from and to the user. Finally, you get to the process of deploying TurboGears in a production environment and how to run it on different OS platforms.



The last section (not counting the appendix), covers all (or most) of the extras such as TurboGears tools, internationalization, testing, identity, and security. Sit back and take a deep breath. You're practically finished. Now that you have so much information about SQLObject running around in your brain, the appendix introduces SQLAlchemy which can be used instead of SQLObject. Alchemy is like Object's, younger, better-looking, stronger cousin. It doesn't have as many tools inside of TurboGears, and hasn't been around as long, but it definitely 'the future'.



Summary



TurboGears is a Python-based framework for building database-driven, quickly extendable web applications using templates. It acts as a common

'interface' to make XHTML, CSS, JavaScript, Ajax, and relational databases all work and play together

politely and even makes them take a nice nap followed by milk and cookies.



Conclusion



Rapid Web Applications with TurboGears: Using Python to Create Ajax-Powered Sites works as well

as the application it presents, providing an 'interface' to introduce the reader in the use of TurboGears; from

building a simple application to expanding the limits of web app creation. If you are already familiar with the individual technologies involved, you're ready for TurboGears and this book is ready for you.








Title: Rapid Web Applications with TurboGears: Using Python to Create Ajax-Powered Sites
Category: Open Source
Sub-Category: Open Source Books
Author: James Pyles
Related Link: Find the book here
Added: November 15th 2006
Viewed: 4961 Times
Score:Top of All
Options: Send to a Friend  Print This Review
  

[ Back to Reviews Index | Back to Open Source Index | Post Comment ]

  




Login
Nickname

Password

Security Code
Security Code
Type Security Code


Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name.

Help if you can!


Amazon Wish List

Did You Know?
You can choose larger fonts by selecting a different themes.


Friends



Help us cut cost by not downloading the whole site!
Use of automated download sofware ("harvesters") such as wget, httrack, etc. causes the site to quickly exceed its bandwidth limitation and therefore is expressedly prohibited. For more details on this, take a look here

Tell a Friend About Us

Bookmark and Share



Web site powered by PHP-Nuke

Is this information useful? At the very least you can help by spreading the word to your favorite newsgroups, mailing lists and forums.
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters. Articles are the property of their respective owners. Unless otherwise stated in the body of the article, article content © 1994-2010 by James Mohr. All rights reserved. The stylized page/paper, as well as the terms "The Linux Tutorial", "The Linux Server Tutorial", "The Linux Knowledge Base and Tutorial" and "The place where you learn Linux" are service marks of James Mohr. All rights reserved.
The Linux Knowledge Base and Tutorial may contain links to sites on the Internet, which are owned and operated by third parties. The Linux Tutorial is not responsible for the content of any such third-party site. By viewing/utilizing this web site, you have agreed to our disclaimer, terms of use and privacy policy. Use of automated download sofware ("harvesters") such as wget, httrack, etc. causes the site to quickly exceed its bandwidth limitation and are therefore expressedly prohibited. For more details on this, take a look here

PHP-Nuke Copyright © 2004 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Page Generation: 0.12 Seconds