<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Apr 21, 2013 at 5:49 PM, Modulok <span dir="ltr"><<a href="mailto:modulok@gmail.com" target="_blank">modulok@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">> Hi everyone,<br>
> few months back I decided to adopt python for my all sort of work including<br>
</div>> web programming...<br>
> --<br>
> <a href="http://mail.python.org/mailman/listinfo/python-list" target="_blank">http://mail.python.org/mailman/listinfo/python-list</a><br>
><br>
<br>
Pick Django or web2py. You'll be happy with either. (I have no experience with<br>
zope.)<br>
<br>
They're both full featured do-everything-you-ever-wanted frameworks with great<br>
communities and lots of documentation. You can buy books on either. I'd say<br>
web2py is a little more elegant and easier to get started with. (An admittedly<br>
subjective claim.) Django has a little larger community and has more third<br>
party stuff.<br>
<br>
If you just need to "get it done" and don't care about how it happens, they're<br>
both excellent. You'll meet deadlines with either of them. The communities are<br>
smart the docs are great. You can't really go wrong any way you slice it.<br>
There's more third party documentation and books for Django right now but<br>
that's just because Django came out first. Give it another couple years and<br>
there won't be much difference.<br>
<br>
Basically, flip a coin and just go with it.<br>
<br>
<br>
<br>
And now for the gritty details approach...<br>
<br>
The problem with web frameworks is they are "magic", i.e. things just happen.<br>
It's the price we pay for using a high level abstraction. The higher the<br>
abstraction the more magic there is. Often times magic is good. It saves us<br>
time and money. However depending on your needs, other options are worth<br>
considering.<br>
<br>
If you are willing to invest a lot of time not being initially productive but<br>
learn a *ton* in exchange, you can use something like cherrypy. (Don't get me<br>
wrong, I love and often use cherrypy.) It's dirt simple and works. However,<br>
because it's so simple it doesn't do half of what you need for a non-trivial<br>
production site. Result? You'll have to fill in the tool chain gaps with other<br>
modules. This is what web frameworks do for you.<br>
<br>
If you go the cherrypy route you'll need to learn other things like like markup<br>
languages and some kind of way to talk to a database. Security is also entirely<br>
in your hands. You'll learn a ton about HTTP, SQL, markup languages, web<br>
security, encryption, etc. You'll be basically re-creating a web framework of<br>
your own brand. Again it's a time spent vs. knowledge gained trade off.<br>
<br>
For a template language I really liked wheezy.template but it's a little too<br>
new for me to feel comfortable using it on any big project. It has a very<br>
simple inheritance model, which is refreshing. I hope to use it more in the<br>
future.<br>
<br>
I usually use Mako for my templates. By 'template' I mean any template, not<br>
just HTML. I use mako for HTML, documentation, I even use mako to write SQL<br>
templates. The inheritance model of Mako takes a little more mental gymnastics<br>
to wrap your head around than the simpler (read nicer) wheezy.template model,<br>
but it's a more mature code base. (Not as mature as cheetah.) I had only minor<br>
experience with cheetah but found I preferred Mako. It was a matter of taste.<br>
There's nothing wrong with cheetah.<br>
<br>
As for database access: sqlalchemy is truly excellent and very flexible. For<br>
most things sqlalchemy is great. However for some projects it may contain too<br>
much magic. (Again we're going deeper.) Sometimes a backend-specific module is<br>
called for, in which case psycopg2 on postgresql is nice. The ability to use<br>
python context managers as transaction blocks is very clean.<br>
<br>
In short, how much do you want to learn? Do you prefer a top-down or bottom-up<br>
approach? Gritty details or elegant abstractions?<br>
<span class="HOEnZb"><font color="#888888"><br>
-Modulok-<br>
</font></span></blockquote></div>thanks a lot Rusi, Roy Smith, Surya and Modulok<br></div><div class="gmail_extra">I am sticking to django. In future I will touch web2py also <br></div></div>