I would like to spend time to learn one (maybe both) of these tools to
make some application. I have learned Python because of his advantages
to compare to other languages. I have rewritten a lot of bash scripts
in Python. I have some experince with PHP also. But I would like to use
Python for develop some web application also. But I don't know
preciesly which of them (Django or Turbuears) is more applicable. I
don't dare to say which of them is better, because I can't judge about
it. I don't have enough knowledge about it. I would like to hear
somebody who has this knowledge.
With regards,
Nader
This has been discussed a zillion times... both in this ML and any many
blogs. I'm pretty sure that if you google for "Turbogears vs. Django"
you'll find plenty of material to make an informed decision.
Alberto
Hi Alberto. I've actually done quite a lot of that. ( Googling for
"turbogears vs %s" % web_devel_framework_name )
And there is, indeed, a good bit out there. Oddly, however, most of it
is from between about October 2005 and February 2005. There seems to
have been a flurry of attention to the topic which has since subsided.
The result of which is that you see a lot of TG 0.8.x comparisons with
other frameworks.
I'm not sure that is to our advantage.
Well, I think TurboGears and Django are both great frameworks, so you
won't "go wrong" no matter which one you choose. That said, you're
asking on a TurboGears list, and I'm the author of a TurboGears book,
so perhaps you won't get an "unbiased" opinion out of me.
I think TurboGears provides better templating solutions, a better
Object Relational Mapper, and easier URL-controller mapping. Django
on the other hand offers a fantastic "Admin interface" which can help
you get content managment type applications up and running very, very
quickly.
TurboGears provides more support for Ajax, and is generally focused
more on the "application" side of web development, whereas Django has
a historical focus more on the "dynamic content" side of the web. Of
course there's no firm line between an web application and a site with
dynamic content, and both frameworks have been successfully used for
both kinds of sites.
In the end it all boils down to which one works for you, which style
of web development fits your needs. Another thing which I should
mention is that TurboGears tends to be somewhat more forward looking
of a place than Django, so there's likely to be access to new python
technologies like SQLAlchemy in TurboGears before you'll ever see it
in Django. This can be a good thing, because SQLAlchemy is awesome,
and makes lots of hard problems easier. But it can be a bad thing
because Django's monolithic form and central control structure ought
to make version to version upgrades a bit easier by preventing API
changes.
--Mark Ramm
It's worth noting that Django and TG will probably wind up borrowing
ideas from each other, so I think the two environments will look
rather similar in a year or so. As an example, I saw Adrian's
announcement on django.newforms the other day. I haven't used it, but
the code examples look a lot like TG's widget system. Similarly, there
is a discussion on the Genshi list (TG will move from Kid to Genshi)
on how to implement Django's template filters.
I tend to use Django for CMS-like systems and TG for everything else.
I prefer TG because I feel that working with the greater Python web
community is worth a bit of integration polish.
Yup. Most of what you will turn up googling is now quite out of date on
both sides. Recent mailing list archive discussion on gears, django, and
pylons are good though.
Iain
If you're quite new to Python programming and web programming in
general, then I'd suggest Django. It's better documented and easier
to get started in. If you get frustrated that you can't do certain
things in it, then give TurboGears a look.
Having said that, both systems have some interactive tutorials that
you can do in an hour or so. Do at least one from each system and
see which seems to fit your way of thinking.
Personally, I think TurboGears tends to be hard work, but much more
satisfying, and you learn a lot from using it.
So maybe, TurboGears for hobby or learning. Django for high-pressure
work environment. TurboGears for low-pressure work environment (ie
when you get to do your learning on the job).
Ed
Ed
In general I agree with the above. That said, if you think what you want
to do is out of Django's core problem domain, then it's not so good to
be in a high pressure situation and suddenly realize that what you need
to do is going to be *really* hard. I found that to be the case with
Django's admin interface. ( Which is really the main selling point of
Django ). Cusomizing it as is intended by the designers is easy. But if
you decide you need to do something weird, hacking on that is not
pretty.
iain