Reasons for choosing Django for website development
People often ask me why Django should be used to write websites? Why not ASP.NET, Ruby on Rails, Grails, etc.? Below I will briefly describe my opinion, and the reasons that formed it. But I want to immediately say that this is not a comparative analysis of frameworks, and I did not set myself the goal of proving something to someone. This is just a listing of the benefits and my thoughts about them.
Using Python as a programming language. Maybe this is not the most ideal and fast programming language, but it is quite simple from the syntactic point of view, which automatically gives a low threshold of entry. Well, in the appendage, we have all the power of metaprogramming, an extensive class library, good documentation, and a fairly compact and intuitive syntax.
Great documentation. I have not seen better documentation in my work - many examples, explanations, and most importantly - open source code, which is very well written.
Built-in ORM (Object-relational mapper). Of course, there are more flexible and powerful libraries that allow the projection of relational data into objects, but Django ORM solves its tasks. The most important thing that I like about it is that in the absolute majority of cases, the use of SQL syntax in expressions is completely unnecessary, which automatically reduces the risk of SQL-injection vulnerabilities.
Automatically generated admin panel. This is one of the unique features of Django, which has almost no analogues. In addition to the fact that this functionality can significantly reduce the time to write the necessary admin interface, it also allows clients to immediately start working with the site at the initial stages of its development! In fact, it is enough to sketch out the necessary models, and you can immediately show the website to the client, and already interactively discuss business logic with him, without being distracted by the design.
Support MTV (Model-Template-View). This design pattern is very close to classical MVC, and the most important thing that it allows is to separate business logic from design well. Moreover, despite the fact that many people are outraged by the lack of richness of the functionality of Django templates, on the contrary, I consider this “disadvantage” a plus - the programmer is less tempted to put all the logic into the templates in order to deal with the spaghetti project.
High speed work. Despite the fact that Python does not shine with speed, in general, Django works quite quickly. It can handle high loads, plus it has built-in caching and load sharing features. Moreover, in order to write on it very powerful sites, you do not need to have a particularly high qualification, you do not need to be a guru, and study a bunch of forums and other resources. In the appendage, I want to give a link to my article Django speed, stability and security .
Well, actually, you yourself can get an idea about this wonderful framework by spending just a couple of hours on the tutorial .