Django Framework

Django is a popular high-level open-source web development Python framework based on follows Model View Template (MVT) architecture that allows rapid development. It. It provides common functionality like Admin Interface, default database, authentication, URL routing, an ORM (Object Relational mapper), a template engine, etc., These are needed for building web applications included with the framework instead of having separate libraries.

Thus, it is also called the batteries-included framework. Ready-made templates. It follows the don't repeat yourself principle as the framework emphasizes reusability and "pluggability" of components, less code, rapid development.

Instagram, Bitbucket, Quora, Youtube, Pinterest, Mozilla, Nextdoor are some well-known websites that use Django.

When a website needs to handle many users and complex features like API connectivity, user authentication Django framework can be a good choice. Python is a prerequisite to work on Django. Its models are packed with more sophisticated features. The framework has more than 10,000 Django packages like API, CMS (Content Management System), User Authentication, Validation, and CAPTCHA protection that cover almost everything a full-fledged web application needs.

Features of Django Framework

  • Fast Development: Django packages help faster development.
  • Securure: Many common mistakes like SQL Injection, cross-site scripting, clickjacking are avoided. With cross-site request forgery(CSRF) protection, inserting user-specific tokens into POST requests can be avoided. User authentication system helps securely manage user-profiles and passwords.
  • Scalable: It can handle a large number of users at a time. Modular components can be replaced easily. The Session Management feature allows you to add more instances of the application and transfer user experience across instances without data loss.
  • Fully Bundled: Content Administration, Site Maps, RSS Feeds, Dynamic Admin Interface, Extensible Authentication System,  are by default taken care of by Django.
  • Versatile: Large web applications in different fields like Content Management Systems, Social Media, Scientific Computing Platforms, Machine Learning, Image Processing, etc., can be easily built.
  • Extensible: Django allows 3rd party code to be plugged into the project until it follows reusable application convention. A large number of packages can extend frameworks functionality.
  • Server Arrangements: Django can run in concurrence with Apache, Ngnix using WSGI, Gunicorm, or Cherokee using python module name flup. It officially supports several database backends like PostgreSQL, MariaDB, SQLite, Oracle, MySQL. With Django mssql Microsoft SQL Server can be used on Microsoft OS. External backends like IBM Db2, SQL Anywhere also exist. Django-nonrel supports NoSQL databases like MongoDB. Django can also run in concurrence with Jython on any Java EE servers like Glassfish and JBoss.
  • Components:The core Django framework can be seen as MVC architecture. ORM(Object-Relational Mapper) mediates between data models and relational database("Model"), processing HTTP requests with web templating system("view") and URL dispatcher("Controller"), which is based on regular-expression.
  • Dynamic Web Pages: Using the templates allows you to create dynamic Web pages displaying user's unique data. Dynamic HTML is produced with a built-in template called Django Template Language(DTL). HTML templates enable the developer to combine static elements with data to create web pages.
  • Cross-Platform: Porting Django’s template engine from Python to another language enabled Cross-Platform Support Some of the options are:
  • Liquid for Ruby
    • Swig for Pearl
    • Twig for PHP and Javascript
    • Jinja for Python

There are few CMS that are built on the Django framework:

  • Django CMS
  • Wagtail
  • Mezzanine