Is Django the way to go for a newbie?

Laura Creighton lac at openend.se
Sun Aug 9 08:23:23 CEST 2015


There are lots of Web Frameworks.
https://wiki.python.org/moin/WebFrameworks

lists some of them.

I wouldn't place too much faith in the classification of some as
'Popular' and others as 'Regarded as Less Popular' --  I keep getting
the itch to put a wikipedia style footnote (by whom) -- in my corner of
the world Zope 2 and Pylons are very popular, and Pyramid which is the
successor to Pylons is rather more popular than either.  All 3 of them
are more popular around here than web2py (which is also popular, just
not at much) and I don't know anybody who is using Turbogears at all.
(Pyramid is listed under the 'non full stack frameworks' but if I had
been making the list it would be under full stack; maybe the list
got made when Pyramid was more incomplete.)

The most important consideration when choosing a web framework is
whether you have somebody local who can help you, in person, with
the thing.  If you have such a person, and they prefer a certain
Framework, go for that one.

Otherwise there really isn't a thing to do but build a small example
and see how you like it.  Because they actually play quite differently.
They are designed by people to make things most convenient for the way
they like to work, to expose the complexity that they want control over
and hide the stuff they don't.  This means, for instance that the very
things that web2py lovers like the best about their framework is
precisely what the people who dislike web2py hate about it -- and
the same is true for Django, and all down the list.  Remember that
the people who love Django (for instance) are all quite happy to
write blog posts about their happiness, while the people who find
writing Django code most unpleasant don't tend to talk about it.
They just find something they like better, and use it.

You will be happiest with the one that fits your brain best, but alas
it is hard to know what that will be before you try it.  But there is
one major split you probably know about yourself when figuring out
what to try first.  If you are the sort of person who takes great
comfort from the knowledge that 'all the batteries are included' and
that you will never _outgrow_ your framework, should you need to do
some new thing with it, the components will already be there, then you
will prefer a full stack framework.  The disadvantage in using a
comprehensive framework like that is that you will have much less
flexibility in how you do things -- you will have to do Django things
the Django way, and web2py things the web2py way, etc.  And things
will be much more complicated.  But if you  are naturally inclined
towards comprehensive solutions, start playing with the Full Stack
Frameworks.  If you throw up your hands and say 'this is all too
complicated!' you can then try something simpler.

If, on the other hand, your natural inclination is to dislike comprehensive
solutions because you always want to go after the _simplest_ thing that
can work, then you should start playing with Micro frameworks.  And
if you throw up your hands saying 'But this thing barely has support
for anything!  I don't want to have to write my own <this>, <that>,
and <some other thing>' then you can try something more comprehensive.

Sorry not to be more helpful, but this is very much one of the cases
where 'it depends' and it very much 'depends on you'.

Laura



More information about the Python-list mailing list