Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #43999

Re: django vs zope vs web2py

Path csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!news.albasani.net!newsfeed.freenet.ag!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail
Return-Path <modulok@gmail.com>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.002
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'languages,': 0.04; 'base.': 0.05; 'model,': 0.05; 'context': 0.07; 'deadlines': 0.07; 'elegant': 0.07; 'great.': 0.07; 'postgresql': 0.07; 'abstraction': 0.09; 'cherrypy': 0.09; 'clean.': 0.09; 'happen.': 0.09; 'http,': 0.09; 'sql,': 0.09; 'works.': 0.09; 'wrong,': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; 'django': 0.11; 'template': 0.14; 'books': 0.15; '(read': 0.16; 'blocks': 0.16; 'for,': 0.16; 'gained': 0.16; 'inheritance': 0.16; 'learn?': 0.16; 'magic': 0.16; 'modules.': 0.16; 'non-trivial': 0.16; 'sqlalchemy': 0.16; 'stuff.': 0.16; 'subject:django': 0.16; 'subject:zope': 0.16; 'template,': 0.16; 'language': 0.16; '(not': 0.18; 'module': 0.19; 'basically': 0.19; 'everyone,': 0.19; 'first.': 0.19; 'comfortable': 0.22; 'featured': 0.22; 'preferred': 0.22; 'cc:addr:python.org': 0.22; 'either.': 0.24; 'frameworks': 0.24; 'simpler': 0.24; 'cc:2**0': 0.24; 'cc:no real name:2**0': 0.24; 'sort': 0.25; 'options': 0.25; 'communities': 0.26; 'header:In-Reply-To:1': 0.27; "doesn't": 0.30; 'message- id:@mail.gmail.com': 0.30; 'url:mailman': 0.30; 'code': 0.31; 'easier': 0.31; 'usually': 0.31; 'markup': 0.31; 'minor': 0.31; 'languages': 0.32; "we're": 0.32; 'another': 0.32; 'url:python': 0.33; 'community': 0.33; 'entirely': 0.33; 'framework': 0.33; 'third': 0.33; 'skip:d 20': 0.34; "i'd": 0.34; 'problem': 0.35; 'knowledge': 0.35; "can't": 0.35; 'tool': 0.35; 'transaction': 0.35; 'something': 0.35; 'good.': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'really': 0.36; 'html,': 0.36; 'i.e.': 0.36; 'url:listinfo': 0.36; 'url:org': 0.36; 'half': 0.37; 'wrong': 0.37; 'too': 0.37; 'level': 0.37; 'being': 0.38; 'sometimes': 0.38; 'initially': 0.38; 'saves': 0.38; 'security,': 0.38; 'little': 0.38; 'ability': 0.39; 'either': 0.39; 'called': 0.40; 'url:mail': 0.40; 'how': 0.40; 'even': 0.60; 'chain': 0.60; 'invest': 0.60; 'is.': 0.60; 'liked': 0.60; 'money.': 0.60; 'truly': 0.60; 'most': 0.60; 'hope': 0.61; 'full': 0.61; 'managers': 0.61; 'new': 0.61; 'matter': 0.61; 'simple': 0.61; 'you.': 0.62; 'back': 0.62; 'times': 0.62; "you'll": 0.62; 'high': 0.63; 'kind': 0.63; 'decided': 0.64; 'pick': 0.64; 'more': 0.64; 'love': 0.65; 'great': 0.65; 'needs,': 0.65; 'to:addr:gmail.com': 0.65; 'details': 0.65; 'worth': 0.66; 'production': 0.68; 'price': 0.69; 'difference.': 0.84; 'mature': 0.84; 'route': 0.84; 'short,': 0.84; 'adopt': 0.91; 'brand.': 0.91; 'gaps': 0.93
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=iaiBsdNHk5OwKS4Vf4GSdtEgJTtfU7mLi+/QIxoeAP0=; b=HqN8WX9+sEiOHRHJE30+/ns3kEpkLJhKjlNrS1/MpVDZI8EACgvj0pQdugDQFNnG+J fcYk+y99aa4QAyXtXjPTirEQYazDrmUh9+CCWFmsSpCNp5G9ELfmYE9hyQT8SS5QjfS7 oj/SH7rN61ULaORha/UTJ3NPOIZ6bpCAE9RVLSIdcRoZ7bWe3juHdMzf1Hqk1Gfucb3q Oo812MDy9iGzl7mSsEAoTHZa0q95NQUU9jezDr0mMI2Xe59uGC8HEFX4+lhsMP2JY2E2 e7/Yu4VS0crLxA7ePTmWr0AQ46GmeCIUBNOB0DwM827kLZICpPYUAZ4i7MiH2lHGT1tp 73/g==
MIME-Version 1.0
X-Received by 10.194.7.68 with SMTP id h4mr42569740wja.49.1366546747739; Sun, 21 Apr 2013 05:19:07 -0700 (PDT)
In-Reply-To <2dc047ad-6b38-422f-8aa6-fca662b89c64@googlegroups.com>
References <2dc047ad-6b38-422f-8aa6-fca662b89c64@googlegroups.com>
Date Sun, 21 Apr 2013 06:19:07 -0600
Subject Re: django vs zope vs web2py
From Modulok <modulok@gmail.com>
To Alok Singh Mahor <alokmahor@gmail.com>
Content-Type text/plain; charset=ISO-8859-1
Cc python-list@python.org
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.877.1366547253.3114.python-list@python.org> (permalink)
Lines 71
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1366547253 news.xs4all.nl 2199 [2001:888:2000:d::a6]:45805
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:43999

Show key headers only | View raw


> Hi everyone,
> few months back I decided to adopt python for my all sort of work including
> web programming...
> --
> http://mail.python.org/mailman/listinfo/python-list
>

Pick Django or web2py. You'll be happy with either. (I have no experience with
zope.)

They're both full featured do-everything-you-ever-wanted frameworks with great
communities and lots of documentation. You can buy books on either. I'd say
web2py is a little more elegant and easier to get started with. (An admittedly
subjective claim.) Django has a little larger community and has more third
party stuff.

If you just need to "get it done" and don't care about how it happens, they're
both excellent. You'll meet deadlines with either of them. The communities are
smart the docs are great. You can't really go wrong any way you slice it.
There's more third party documentation and books for Django right now but
that's just because Django came out first. Give it another couple years and
there won't be much difference.

Basically, flip a coin and just go with it.



And now for the gritty details approach...

The problem with web frameworks is they are "magic", i.e. things just happen.
It's the price we pay for using a high level abstraction. The higher the
abstraction the more magic there is. Often times magic is good. It saves us
time and money. However depending on your needs, other options are worth
considering.

If you are willing to invest a lot of time not being initially productive but
learn a *ton* in exchange, you can use something like cherrypy. (Don't get me
wrong, I love and often use cherrypy.) It's dirt simple and works. However,
because it's so simple it doesn't do half of what you need for a non-trivial
production site. Result? You'll have to fill in the tool chain gaps with other
modules. This is what web frameworks do for you.

If you go the cherrypy route you'll need to learn other things like like markup
languages and some kind of way to talk to a database. Security is also entirely
in your hands. You'll learn a ton about HTTP, SQL, markup languages, web
security, encryption, etc. You'll be basically re-creating a web framework of
your own brand. Again it's a time spent vs. knowledge gained trade off.

For a template language I really liked wheezy.template but it's a little too
new for me to feel comfortable using it on any big project. It has a very
simple inheritance model, which is refreshing. I hope to use it more in the
future.

I usually use Mako for my templates. By 'template' I mean any template, not
just HTML. I use mako for HTML, documentation, I even use mako to write SQL
templates. The inheritance model of Mako takes a little more mental gymnastics
to wrap your head around than the simpler (read nicer) wheezy.template model,
but it's a more mature code base. (Not as mature as cheetah.) I had only minor
experience with cheetah but found I preferred Mako. It was a matter of taste.
There's nothing wrong with cheetah.

As for database access: sqlalchemy is truly excellent and very flexible. For
most things sqlalchemy is great. However for some projects it may contain too
much magic. (Again we're going deeper.) Sometimes a backend-specific module is
called for, in which case psycopg2 on postgresql is nice. The ability to use
python context managers as transaction blocks is very clean.

In short, how much do you want to learn? Do you prefer a top-down or bottom-up
approach? Gritty details or elegant abstractions?

-Modulok-

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

django vs zope vs web2py Alok Singh Mahor <alokmahor@gmail.com> - 2013-04-20 23:13 -0700
  Re: django vs zope vs web2py Alok Singh Mahor <alokmahor@gmail.com> - 2013-04-20 23:18 -0700
    Re: django vs zope vs web2py rusi <rustompmody@gmail.com> - 2013-04-21 00:51 -0700
    Re: django vs zope vs web2py Roy Smith <roy@panix.com> - 2013-04-21 07:22 -0400
    Re: django vs zope vs web2py Surya Kasturi <suryak@ieee.org> - 2013-04-21 17:29 +0530
  Re: django vs zope vs web2py Modulok <modulok@gmail.com> - 2013-04-21 06:19 -0600
  Re: django vs zope vs web2py Alok Singh Mahor <alokmahor@gmail.com> - 2013-04-21 20:12 +0530

csiph-web