Django - Basics


Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. Django makes it easier to build better web apps quickly and with less code.

Note − Django is a registered trademark of the Django Software Foundation, and is licensed under BSD License.

History of Django

  • 2003 − Started by Adrian Holovaty and Simon Willison as an internal project at the Lawrence Journal-World newspaper.

  • 2005 − Released July 2005 and named it Django, after the jazz guitarist Django Reinhardt.

  • 2005 − Mature enough to handle several high-traffic sites.

  • Current − Django is now an open source project with contributors across the world.

Django – Design Philosophies

Django comes with the following design philosophies −

  • Loosely Coupled − Django aims to make each element of its stack independent of the others.

  • Less Coding − Less code so in turn a quick development.

  • Don't Repeat Yourself (DRY) − Everything should be developed only in exactly one place instead of repeating it again and again.

  • Fast Development − Django's philosophy is to do all it can to facilitate hyper-fast development.

  • Clean Design − Django strictly maintains a clean design throughout its own code and makes it easy to follow best web-development practices.

Advantages of Django

Here are few advantages of using Django which can be listed out here −

  • Object-Relational Mapping (ORM) Support − Django provides a bridge between the data model and the database engine, and supports a large set of database systems including MySQL, Oracle, Postgres, etc. Django also supports NoSQL database through Django-nonrel fork. For now, the only NoSQL databases supported are MongoDB and google app engine.

  • Multilingual Support − Django supports multilingual websites through its built-in internationalization system. So you can develop your website, which would support multiple languages.

  • Framework Support − Django has built-in support for Ajax, RSS, Caching and various other frameworks.

  • Administration GUI − Django provides a nice ready-to-use user interface for administrative activities.

  • Development Environment − Django comes with a lightweight web server to facilitate end-to-end application development and testing.