Django Girls Installathon at Treehouse headquarters in Portland, Ore., July 17, 2015. (Kenneth Love)
I recently released Treehouse’s first Django course. So, I thought it might be a good idea to talk about why you’d choose Django over other frameworks. Django is my favorite framework for many reasons, some of them concrete, some of them not. In no particular order, here are five of them.
1. Django is time-tested
2015 marks the 10th anniversary of Django’s first open source commit. Django was under development for awhile before it was released, of course. Even if it wasn’t, 10 years is a long time for a project to be around, much less heavily used. Over those 10 years, Django has had several releases. Some of these releases brought new features. Others were focused on preventing new and groundbreaking security issues. In fact, Django is often one of the first frameworks to respond to a new vulnerability. Django’s core team often alerts other frameworks of patches they should make.
This age also adds to the stability of Django. While I can’t say that every wrinkle and bug has been fixed, a lot of them have been. Most Django releases nowadays are focused on new features and edge case concerns. Software might not get wiser with age, but it tends to make better decisions.
2. Django has been crowd-tested
While Rails and Node both get a lot of publicity from their big users, Python and Django tend to be a bit quieter. But that doesn’t mean Django isn’t used by some major hitters!
Django powers many of the Web’s most-used sites, like Pinterest and Instagram. Facebook uses Django for various behind-the-scenes utilities. And Disqus, one of the largest applications on the Internet, is a Django project. Django came from publishing, so it’s no surprise that sites like The Washington Post and Smithsonian Magazine use Django.
3. Tons of Django packages available
Like the Python community in general, the Django community contributes useful packages and utilities for use by the wider world. Searching for “django” on PyPI finds over 3,000 packages available for use. This is on top of Django’s “batteries included” mentality. The framework has already included most things you’re going to want.
Finding your way through all these packages can be tough. We have Django Packages, a community-curated comparison grid of packages for many different uses. We also have the aptly-named awesome-django for a more opinionated list of useful packages.
4. Django has excellent documentation
When it first came out, one of the features that set Django apart was how good the documentation was. Many other frameworks just used an alphabetical list of modules and all the attributes and methods. This is great for quick reference when you just can’t remember if it’s
sort_array(). It doesn’t help, though, when you’re first learning the framework.
Django’s documentation quality may not be unique any more. It’s definitely still one of the best examples of open source documentation in the wild. And keeping these docs to this quality level is still a concern for Django’s developers. Docs are a first-class citizen in the Django world.
5. The Django community is amazing and supportive
I’ve often talked about how the community is one of the best aspects of the Python world, that may be even more true for the Django world. Django is governed by the DSF, or Django Software Foundation. Every event involving Django has to have a code of conduct. The DSF also recently released a diversity statement making an official stance on the kind of community they want to build.
Django offers stability, tons of packages, good documentation, and a safe and welcoming community. What more could you want? We have lots more Django content coming here at Treehouse but we’d love to hear from you what specific areas you like to learn about. Drop me a line and let me know!
great article! yeah really Django framework is good but some problem with its implementation. can you send some easier techniques to implement this?
You missed one important point.
How is the demand for DJango developers?
I love Django, it helps me build awesome stuff really fast, I’l love to see some specialization, how-to tutorials in API building, security & testing 🙂
Am a django developer, how can i deploy a django web app on my server. Please I need your help.
I have followed your video tutorials, they are great.
Please write some tutorials on how to integrate a wysiwyg editor in django.
I know about the Django utilities but still getting difficulties about its framework and its implementation.May some easier techniques would come in Django so that Beginners can meet the eligibility criteria.
Just have one question..if Django is really that Awesome..and I do not doubt that..Why have you chosen WordPress( basically php) for this blog?
Well, one, this blog predates Treehouse teaching Django. And, two, WordPress is a very capable and ready-to-use blogging application. Why re-invent that wheel?
Quick note: the URLs for the Django documentation and Django Packages are incorrect, they should point to docs.djangoproject.com and djangopackages.com, they’re currently pointing to .org addresses
Great list of resources, though! Thanks!
Thanks! I’ve updated the links.
I’m always outspoken, it’s a great article, and I really like that you haven’t taken any low-hanging fruit arguments, or truthy statements like “Django apps are magically more secure”, as mentioned in so many other posts on Django, I have historically read, or been a part of online and offline discussions when considering any framework.
While, I get it, platform evangelism helps attract interest and possibly talent; I think the web needs more articles like this, as the marketing practices used, often help to shape the communities they have.
I would love to see more Django courses, covering n00b and high-level subjects in Django, and while I would prefer a Trello collaborative board as [Craig Dennis has put together for Java](https://trello.com/b/dBiGr15K/treehouse-java-content-roadmap), below are things I would love to see.
* How to get involved in Django community (course with practical commit)
* Building Multi-lingual apps in Django (course or workshop with workspace)
* Scaling Django (course)
* Intermediate and Advanced Django testing (courses)
* Process based development with Django (course or workshop with workspace)
* Deploying a Django project to Cloud (AppFog or Heroku should be able to jump on, and sponsor this)
* Production Django concerns (I’d also like to see a flask version of this)
Traditionally I have only used Python for in-house and private projects, that people do not see, because there was this “walled garden” of excellence perception. Your courses have really helped me to overcome that, and I am beginning to make moves into Python (I really like .pyc files). I would really appreciate any more Django content you push, even if not the specific nice to have content I would like to see Treehouse pushing 😉
Well, have I got a link for you: https://trello.com/b/owW9vn86/treehouse-python-content-roadmap
i approve this