So what are the advantages in using Django? It does make the modelling easy, but it also adds some extra constraints or complexities.
There are many advocates of Django and many places where people will try to answer the question “Why use Django?” In the table below, I have included links to eight such articles, with a quick summary of each.
Note that this post is an update of an earlier post, #27, from March 2017. Some newer articles are included and I have dropped one of the articles which didn’t contribute much. If anyone is aware of any other articles on the subject that would be worth referring to, please let me know.
This article says Django should be used because it is full-featured and portable, has a great community and can be worked with by lots of developers. Cloud providers can support Django easily and it is surprisingly scalable. The DRY principle baked into Django is lauded as another reason to use it while the availability of many packages, provision of a good admin interface and great documentation round out the arguments put forward.
This article is replicated here including links to the images on Medium. The author there is listed as Chris Castiglione and the date as 6 March 2015. Note that both copies of the article refer to DecisionDesk, a company co-founded by Eric Neuman.
In this article, it is argued that Django has been tested by crowds of people over a long time and has an active and supportive community. The availability of a large number of packages and excellent documentation conclude the reasons why you should use Django.
Speed of development and scalability are the first two reasons given in this article. Django, it continues, is written in Python using the laudable DRY principle and is a full-featured toolkit with more features than others and many additional packages available if you need them. Django is very well documented and portable across all platforms as well as being supported by cloud providers. Not only that, but the developers at DJANGO STARS have spent a lot of time working with it and keep getting better at doing the work they need to do.
Why you should use Django
by Jacob Kaplan-Moss (a core contributor to Django – January 2006)
Not a new article, but still helpful and true today.
The author says that Django just works and deployment is a breeze. An extremely friendly and helpful community is said to be Django’s biggest asset. Django is fast, solves real world problems and is scalable so that it won’t be overloaded. The admin interface, he says, will “blow your mind” – it is so good that, if you have an existing database, it’s even worth using just to help you understand your data better. He argues that Django’s template language does not require designers to be programmers to use it.
The article reflects on 10 years of use of Django and how it has matured until it has become reliable to the point of being boring. In the author’s opinion, Django is there for the long haul and continues a strong emphasis on backwards compatibility. The community that has built up around Django means that apps are available in a very large range of areas, which helps startups to get Django-based applications off the ground quickly.
The fact that Django is written in Python is acknowledged as an advantage because of its popularity and the documentation is praised as “stellar”. Django’s scalability, he says, is great and the framework can be expected to continue to improve and stay boring for a long time to come. Ideal for startups to use.
Very supportive of Django, arguing that for most applications, Django will be useful. Gives a list of situations in which Django will be helpful and a (shorter) list of conditions where Django is not a good fit. Tries to summarise reasons why Django is good including its basis in Python, the admin interface, a leaning towards a DRY methodology, speed of development and security.
His conclusion: “In my opinion, Django is the perfect balance between performance, architecture, development effort, security and scalability.”
This article introduces the facts that most will know about Django – its basis in Python and rapid development including a basic design that forces developers to use the framework the way it is designed to be used. Django’s ongoing commitment to backwards compatibility also rates a mention, as does its relevance for applications that are frontends or backends. A short section on when Django is not worth using concludes that for very simple applications, other frameworks will be better. Not a long article, but quite detailed.
Also published on “The Startup”, a Medium publication by Amit Ashwini (November 2017) with a link to the original article. You can decide for yourself who wrote it!
A brief introduction to Django and its background is followed by various arguments in favour of Django, suggesting that it: is time-tested and crowd-tested; has many packages; has wonderful documentation and a supportive community; is secure and scalable.
One of the common reasons put forward as to why you should use Django is that “everybody else is”. I find this utterly unconvincing. Thinking back over quite a few years in IT, I have watched many ideas come and go – ideas that “everybody” used or were told they should. XML was to be the solution to every problem, and the dot-com boom was based on a fundamentally different way of doing business which had invalidated the ordinary rules of income and profit. Remember the Net PC and the paperless office? And have you bought an internet-enabled fridge yet?
History shows that when new paradigms are presented as overturning all the old fundamentals, those basic old rules have a habit of making a comeback. The argument that “everyone else is doing it” will never be sufficient reason to do anything. Noah was the only one building a big boat.
So let’s look for better reasons.
Unfortunately, most of the arguments put forward contain various assumptions. For example, most commentators assume that you will be using a web framework. Obviously this will depend on your needs. This argument strays perilously close to the “everyone is doing it” argument again.
“Time-tested” is a common description in many of the articles. It seems a good idea to use software that has been good enough, popular enough and useful enough to ensure that it has lasted. Having a project last and grow for a long time suggests that it is built on a community that has found a way to make software development enjoyable. This is a powerful point in Django’s favour.
Scalability and security are another couple of commonly mentioned high points. Django delivers as required and expected in these areas.
Feel free to read the articles and make up your own mind.
For me, a significant advantage of Django for simple databases like those in our examples, is its database independence. The same Python code can be used with SQLite, PostgreSQL, Oracle or MySQL databases. All you need to do is change the database settings and everything else will work. Django migrations normally handle the complexities of table creation, constraints and indexing without any special extra work, so you can modify your modelling without the need to carefully craft database scripts that are specific to each database type.
There are also some extra benefits which Django provides with very little effort. The admin interface is one such, and the documentation really is very good.
As for the problems with Django – we’ll get to them another time.