Building Python Based Web Application

Adam Jones ajones1 at
Fri Sep 8 23:29:01 CEST 2006

James Stroud wrote:
> Hello All,
> I am interested in setting up a modest invoicing system for some
> consulting I am doing. I like the idea of managing this on the web and
> creating invoices and printing them from a browser. However, I'm not
> really sure where to start. I've played with some CMS applications, but
> they seem more for blogging (mamba, wordpress, etc.). Ideally, I would
> like to interface with mySQL (or whatever the favorite web-flavor
> database app is these days). I would like to be able to use my python
> skills.
> I confident that if I set out to write this from scatch, I will be
> seriously re-inventing the wheel, perhaps several times over.
> So, my question is, does anyone know of a book and/or some kind of
> framework that would make the best sense for what I am describing here?
> I've heard of Zope, but I would like to make sure its appropriate for
> the job before I spend 2 or 3 days getting acquainted with it. I'm adept
> at HTML, python, CSS, python-CGI, and interfacing with mySQL through
> DBI. I'm sure I could get something to work with these skills, but I
> want to minimize wheel re-invention as much as possible.
> Basically, I want a jump start on data-base oriented web development
> with a focus on applying my python skills.
> Any suggestions will be greatly appreciated.
> James
> --
> James Stroud
> UCLA-DOE Institute for Genomics and Proteomics
> Box 951570
> Los Angeles, CA 90095

Hi James,

>From what it looks like you are doing, filtered by my personal
experience, I would recommend either Django or TurboGears. From what I
have heard Zope, and Pylons would also be good choices.

Django would be by far the better choice if your data entry forms would
map directly to your database tables. The admin interface gives you
web-based access to your database pretty much for free. It doesn't work
as well when your data relationships are more complicated, but could
probably prove to be a useful head start.

I think TurboGears is a pretty good choice because of widgets. In
TurboGears widgets are packaged up bits of user interaction code, made
portable throughout your project. Widgets have already been created
that handle form creation, a bunch of nifty little ajax things, and
even more advanced features. User created widgets can be (and are)
easily made available for download and installation.

One example that you would probably find useful is the TurboTinyMCE
widget, which coincidentally enough is not a standard part of
turbogears, but a downloadable widget. It incorporates the TinyMCE text
editor into any web page without having to worry about adding style
sheets, javascript includes, or really any code that produces TinyMCE
to your existing HTML. You basically put a call to the TinyMCE widget
in your Template and all the rest of the work happens automatically.
TurboGears also has an admin interface (named Catwalk), but it is not
designed for external use.

Without having a better idea of what you are trying to do, I would
recommend Django on the grounds that the admin interface will probably
do what you need. I would encourage you to take a look at both projects
if you have time, just to see which one you like more, but based on raw
feature matches that is my recommendation.

Disclosure: I do most of my work with TurboGears. If I have maligned or
misrepresented any other project in any way please attribute it to lack
of experience. If I have maligned or misrepresented TurboGears in any
way, please attribute it to lack of caffeine.

More information about the Python-list mailing list