December 25, 2014

Top ten reasons to use Django for your web framework

guitar Top ten reasons to use Django for your web frameworkDjango is pulling ahead of every other web framework I’ve tried. For reference, that includes such recent heavy-hitters as: Jakarta Struts/Tiles, Spring, PHP Smarty, Zope, and Plone.

I’d been thinking about why that was so, why I’ve become so fond of Django so quickly, when I ran across a post at Jacobian.org, titled Why you should use Django. I’ll take his top ten points and add my own observations:

1. Django works — right now

It really does. The example tutorial works correctly the first time. That is something hard to find in the online world. Better, there is no outstanding wart which is holding up adoption, and which will be fixed “real soon now”.

2. Deployment is a breeze

I know that I will be able to deploy on DreamHost, which is the most important part to me as a user at this time. As a developer, it was amazingly simple to set up and run my development system. This took literally hours less time than setting up an equivalent Java system.

3. Your site won’t go down

That’s one of Django’s big claims, and is part of the reason I was initially attracted to the framework. It speaks of quality to me.

4. Django is fast

It is faster by far than Kid, and Cheetah. If it beats those, then it literally blows Zope out of the water. PHP should eat its dust as well. But that is all beside the point to me at this point. I care about “fast to develop for”, and that is where it truly shines for me.

5. Django scales

Not qualified to judge.

6. Django’s admin will blow your mind

I hate writing admin interfaces. Django removes almost all the pain for me. In fact, they are almost free, which is a wonderful and deeply appreciated thing. How many times have I released a half-ass admin interface “for trained users only” to justify the fact that using it might cripple the site if the wrong button were clicked? More times than I like to think. Django won’t prevent all of that, but it gives me back so much time that I can then use to put in better logic-checking and validation.

7. You don’t need to go whole-hog

I am preparing to port Invisible Castle to Django, and I’ll report back about my progress. I expect it to be fairly easy, actually.

8. Django plays well with designers

I’m not qualified to judge, I think he’s probably right

9. Django comes from the Real World

I love the fact that they don’t add functionality just because it looks fun. The best projects/software in the world were built to solve real problems, and more importantly had real users right from the get-go. Django was built exactly that way, with immediate feedback and guidance from their sponsor, and it has clearly benefited from that.

10. We’re here to help

My post about logging in frameworks which referenced Django was picked-up and responded to within a day. That’s amazing. What’s more, the result is that they may very well adopt what I am suggesting. It wasn’t a flame-fest, despite my initial harsh tone. The professionalism and openness both surprised and pleased me.

[tags]python,django,webframeworks,web frameworks[/tags]

Share and Enjoy:
  • services sprite Top ten reasons to use Django for your web framework
  • services sprite Top ten reasons to use Django for your web framework
  • services sprite Top ten reasons to use Django for your web framework
  • services sprite Top ten reasons to use Django for your web framework
  • services sprite Top ten reasons to use Django for your web framework
  • services sprite Top ten reasons to use Django for your web framework
  • services sprite Top ten reasons to use Django for your web framework
  • services sprite Top ten reasons to use Django for your web framework

Related posts:

  1. Django encourages Flow Django is one good web framework....
  2. Helpful Django utilities and links Two simple links which have been very helpful in doing...

About Bruce Kroeze

Comments

  1. Bruce,

    thanks for taking the time to write this stuff up — as a happy DreamHoster of many years who’s just getting into Python, it’s very helpful!

    How’s your experience been getting Django running on DH? I have to admit, when I see things like this, they tend to scare me:

    http://wiki.dreamhost.com/index.php/Django

    http://groups.google.com/group/django-users/browse_thread/thread/921592d0c29573f8/2452af46c986d70e

    Have you found Django-on-DH to be more of a joy, or more of a pain?

  2. Bruce says:

    Well, I haven’t actually set it up on Dreamhost yet.

    I’m really not worried about it, to be honest. I’m pretty good at that sort of thing, and I’ve already figured out how to install much trickier things (see my Cheetah Templates installation instructions).

    Also, I’ve got help. I use the “project_template” helper utility to set up my projects, and it makes an appropriate Dreamhost fastCGI config for me.

    Still, I am finally at a good stopping point on one of my Django projects, so I’ll be testing soon. I’ll be sure to post about it then.

  3. Adam Isler says:

    Found your blog surfing and I wanted to add my 2c:

    #1: There are some things that I would say aren’t “right now”. I’m really waiting for them to overhaul the manipulator stuff which I think is coming in the next version. I mean, Django is totally usable today, but there are some places where it is a bit verbose for what actually needs to be done.

    #2 & 3: This is key. I’ve never been happy with the way most non-PHP things deploy (and never happy with how PHP stuff is coded). Django was so supremely easy to set up and deploy and doesn’t error or go down (a problem I have had with Rails in shared setups).

    #4: In my experience, Django (the whole system) is faster than most templating systems, never mind application frameworks. Frankly, Django is able to render pages faster than PHP can include ADOdb. It’s also a good bit faster than Rails. There is a downside to this though. Django likes you to declare all your imports. For example, in Rails I could just call Story.find(:id) while in Django I would have to do from mysite.stories.models import Sroty, from django.shortcuts import render_to_response, Story.objects.get(id=id). I’m guessing that the Django devs assumed that 10 seconds of my time was worth the speed advantage of loading only what is needed. It may just be a Python thing as well.

    #10: Django has an interesting community. There’s lots of help in the Rails community too and I’m not sure that there is too much difference there. I think the most interesting distinction is that Adrian and Jacob are the ones who write a lot about it – like, they’re writing the Django book, they wrote Pro Django. DHH (Rails creator) doesn’t author the books about Rails. I don’t know whether that is good or bad, just a distinction.

Trackbacks

  1. [...] Argh! I simply cannot get Django to work on Dreamhost. I hereby eat my words. I’m really not worried about it, to be honest. [...]

  2. [...] I’ve become so fond of Django so quickly, when I ran across these posts. Top Ten reasons to use Django for your web framework and Django for non-programmers A cool Django presentation is now available via Google Video. [...]

Speak Your Mind

*