What is Django?
Django is a high-level Python web infrastructure that allows you to quickly create secure and supported websites. Built by experienced developers, Django takes care of many web development issues. So you can focus on writing your application without having to reinvent the wheel. It is open source, has a thriving and active community, excellent documentation and many options for all kinds of support.
Django helps you write software that:
Everything is included
Django follows the “Batteries included” philosophy and provides almost everything that developers may want to do “out of the box”. Since everything you need is part of a single “product”, it all works without problems. Follows consistent design principles, is extensible and up-to-date documentation.
Flexible
Django can be used to create almost any type of website-from content management systems and wikis, to social networks and news sites. It can work with any client platform and can deliver content in almost any format (including HTML, RSS feeds, JSON, XML, and so on). The site you are currently reading is based on this infrastructure!
The filling provides a choice for almost any functionality that you may want (for example, several popular databases, template engines, and so on). It can also be extended to use other components, if necessary.
Safe
Django helps developers avoid many common security mistakes by providing an infrastructure that designed for the “right solution” to automatically protect the site. For example, Django provides a secure way to manage user accounts and passwords. Avoiding common mistakes. Such as including session information in cookies where vulnerable (instead, cookies contain only the key, and the actual data stored in a database). Or storing passwords in plain text, instead of their hashes.
A password hash – a fixed-length value created by processing the password through a cryptographic hash function. Django can verify the correctness of the entered password by passing it through the hash function and comparing the output with the stored hash value. Due to the” one-way ” nature of the function. Even if the stored hash value – compromised, it will be difficult for an attacker to extract the original password.
Django provides protection against many default vulnerabilities. Including SQL injection, cross-site scripting, cross-site query forgery, and clickjacking (see Website security for more information about these attacks).
Scalable
Django uses a component-based “shared-nothing” architecture (each part of the architecture is independent of the others, and therefore can be replaced or changed if necessary). A clear separation between the different parts means that it can scale to increase traffic by adding hardware at any level. Caching servers, database servers, or application servers. Instagram scale Some of the most visited sites successfully scaled by Django. To meet its requirements (for example, Instagram and Disqus, to name just two).
Convenient to accompany
Django code – written using design principles and patterns that encourage the creation of maintainable and reusable code. In particular, it uses the principle of Do not Repeat Yourself (DRY). So there is no unnecessary duplication, which reduces the amount of code. Django also promotes the grouping of related functions into reusable “applications”. And at a lower level groups the related code of modules according to the Model View Controller (MVC) pattern.
Portable
Django written in Python, which works on many platforms. This means that you not tied to any particular server platform and can run applications in many variants of Linux, Windows and Mac OS X. In addition, Django – well supported by many web hosting providers, who often provide certain infrastructure and documentation for hosting Django sites.
How popular is Django?
There are no available and definitive estimates of the popularity of server frameworks (although sites like Hot Framework try to estimate popularity using mechanisms such as counting the number of projects on GitHub and questions on StackOverflow for each platform). The best question is whether Django is popular enough to avoid the problems of unpopular platforms. Does it continue to develop? Can you get help if you need it? Do you have the opportunity to get a paid job if you study Django?
Based on the number of large sites that use Django, the number of contributors and the number of people providing all kinds of support, we can assume that Django is a popular framework.
Django – used by such major sites as Disqus, Instagram, Knight Foundation, MacArthur Foundation, Mozilla, National Geographic, Open Knowledge Foundation, Pinterest, and Open Stack
Is Django self-sufficient?
Web frameworks can often divided into “stubborn” and “not stubborn”.
Stubborn frameworks are those that have an opinion about the “right way” to solve a particular task. They often support rapid development in a certain area (solving problems of a certain type). Because the right way to do something usually well understood and well documented. However, they may be less flexible when solving problems outside of their main area. And, as a rule, offer fewer options for what components and approaches they can use.
In contrast, non-direct frameworks have much fewer restrictions on the best way to glue components together to achieve a goal, or even which components should be used. They make it easier for developers to use the most appropriate tools for a specific task. Although at the expense of the fact that you need to find these components yourself.
Django is “a bit stubborn” and therefore provides “the best of both worlds”. It provides a set of components for handling most web development tasks. And one (or two) preferred ways to use them. However, this Django architecture means that you can usually choose from several different options or, if necessary, add support for completely new ones.
What else be done?
Django also provides a few other things:
- Forms: HTML forms are used to collect user data for processing on the server. Django makes it easy to create, validate, and process a form.
- User Authentication and Permissions. Django includes a reliable user authentication and authorization system that has built with security in mind.
- Caching:Creating dynamic content is much more intensive (and slower) than serving static content. Django provides flexible caching so that you can store all or part of the displayed page, so that not called again, except when necessary.
- Admin Panel: The admin panel in Django – enabled by default when creating an application using the main framework. This makes it easier for site administrators to manage the admin panel to create, edit and view any data on your site.
- Data Serialization: Django makes it easy to serialize and maintain your data in formats such as XML or JSON. This can be useful when creating web services (websites that exclusively serve for the use of data by other applications or sites and do not display anything themselves) or when creating a website where the client code processes all the data rendering.