if not CGI:
bdesth.quelquechose at free.quelquepart.fr
Fri Jun 2 04:25:54 CEST 2006
Max a écrit :
> But now I'm ready to do it in the real world. Nothing complicated, but a
> real project. And I have to choose my tools. Zope, Plone, Django, what
> are these?
Zope -> an application server
Plone -> a CMS built upon Zope
Django -> a MVC fullstack framework (fullstack : integration with a
server + ORM + template system + various utilities).
> I don't have to stick with Python, although it's my preferred
> language. I know Python, Java and C++. But I'm ready to learn Ruby if
> RoR is as good as they say.
RoR is not bad, but really over-hyped. There's no shortage of at least
as good solutions in Python. You may want to look at Django, Turbogears,
Pylons, web.py etc. for fullstack MVC frameworks.
There are more barebones solutions, like CherryPy (the application
server Turbogears is built upon), Myghty (extended perl::Mason port,
used by Pylons), mod_python (if you're an hard-core Apache fanatic),
WebStack (if you want to deploy on almost any server), and some other
pieces like formencode (form validation), SQLObject (ORM, used by
Turbogears and Pylons), SQLAlchemy (another ORM, very promising, by the
author of Myghty), Routes (port of RoR routes, used by Pylons) and a lot
of templating systems. So you can even build your own fullstack
framework from existing pieces (that's what Turbogears and Pylons are
And also whole lot of more specific solutions : Albatross, Quixote,
Karrigel, Twisted/nevow, (...), and of course Zope 2.x and 3.x, but it
may be overkill and long to learn.
Also, FWIW, Trac is almost a usable (somewhat minimalist) framework on
So the problem is not "are there good solutions", but "which one to
choose" !-) The answer of course depends on what you want and what you
like, but taking a few days to play with Turbogears, Django and Pylons
might be a good idea.
> I could do it in Python cgi (or mod_python). But it seems from all the
> hype that this is not a good way to write scaleable, extensible web
Trac is a perfect counter-example IMHO.
More information about the Python-list