Personal tools
You are here: Home Python Python and RAD Web Application Development
Document Actions

Python and RAD Web Application Development

last modified 2006-02-22 03:49 PM

Some useful tools for RAD development of web-based applications using Python.

Recently a friend asked me for some resources for using AJAX and rapid web-site development. Although I am a big fan of Plone, I couldn't really recommend it for her purposes (or rather I showed it to her, but it didn't pique her interest). Plone is monolithic and hence inflexible. She wanted to have total control of her work. The Zope framework Plone is built upon. is the opposite of component-ized, and thereby somewhat antithetical to the object-oriented model Python represents. Supposedly Zope 3 addresses this issue. However, something that has been cooking as long as Zope 3 has been, somehow seems unappetizing.

Meanwhile, over the years developers have created various alternative Python frameworks for web work. One that particularly intrigues me is Turbogears, in particular because it is not a one-size-fits-all framework. Rather, it is a glue framework for a collection of other frameworks. This makes it extremely appealing and more in tune with the object-oriented approach:

  1. reuse what exists without inventing the wheel each time and 2. only use what you really need without having the kitchen sink thrown in with every application

Enough with the trite metaphors. On to the thing itself:

http://www.turbogears.org.nyud.net:8090/

It uses mochikit as a javascript framework for all the nice gui display on the client side:

http://www.mochikit.com/

it uses kid for templating - that's the part that e.g. let's you have the header written once and then automagically appear on all your pages:

http://kid.lesscode.org/

it uses cheerypy as a gateway framework that allows you to execute code (e.g. when you need to send the data in a form to an application or package it as an email or access any other application - the equivalent of cgi scripts):

http://www.cherrypy.org

it uses sqlobject for persistence (i.e. storing and retreiving data in a database)

http://sqlobject.org/

It's much more modular than plone so it can actually let you built stuff lego like. It's all based on object-oriented (OO) design and programming techniques. I give a course on OO design and analysis. This presentation gives a quick overview of the key concepts:

http://www.fourm.info/TPP/OOAD/Presentations/03-CoreOO.pdf

 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: