You are on page 1of 13

Django (web framework)

From Wikipedia, the free encyclopedia


Jump to navigationJump to search
For other uses, see Django (disambiguation).

Django

Original author(s) Adrian Holovaty, Simon Willison

Developer(s) Django Software Foundation

Initial release 21 July 2005; 14 years ago[1]

Stable release 3.0.6 / 4 May 2020; 7 days ago[2]

Repository Django Repository

Written in Python

Size 8.6 MB[3]

Type Web framework

License 3-clause BSD


Website www.djangoproject.com/ 

Django (/ˈdʒæŋɡoʊ/ JANG-goh; stylised as django)[4] is a Python-based free and


open-source web framework, which follows the model-template-view
(MTV) architectural pattern.[5][6] It is maintained by the Django Software
Foundation (DSF), an independent organization established as a 501(c)(3) non-
profit.
Django's primary goal is to ease the creation of complex, database-driven websites.
The framework emphasizes reusability and "pluggability" of components, less code,
low coupling, rapid development, and the principle of don't repeat yourself.[7] Python
is used throughout, even for settings files and data models. Django also provides an
optional administrative create, read, update and delete interface that is generated
dynamically through introspection and configured via admin models.
Some well-known sites that use Django include the Public Broadcasting Service,
[8]
 Instagram,[9] Mozilla,[10] The Washington Times,[11] Disqus,[12] Bitbucket,
[13]
 and Nextdoor.[14]

Contents

 1History
 2Features
o 2.1Components
o 2.2Bundled applications
o 2.3Extensibility
o 2.4Server arrangements
 3Version history
 4Development tools with Django support
 5Community
 6Ports to other languages
 7See also
 8References
 9Bibliography
 10External links

History[edit]
Django was created in the fall of 2003, when the web programmers at the Lawrence
Journal-World newspaper, Adrian Holovaty and Simon Willison, began using Python
to build applications. Jacob Kaplan-Moss was hired early in Django's development
shortly before Simon Willison's internship ended. [15] It was released publicly under
a BSD license in July 2005. The framework was named after guitarist Django
Reinhardt.[16]
In June 2008, it was announced that a newly formed Django Software
Foundation (DSF) would maintain Django in the future.[17]

Features[edit]
Components[edit]

Screenshot of the Django admin interface for modifying a user account.

Despite having its own nomenclature, such as naming the callable objects
generating the HTTP responses "views",[5] the core Django framework can be seen
as an MVC architecture.[6] It consists of an object-relational mapper (ORM) that
mediates between data models (defined as Python classes) and a relational
database ("Model"), a system for processing HTTP requests with a web templating
system ("View"), and a regular-expression-based URL dispatcher ("Controller").
Also included in the core framework are:

 a lightweight and standalone web server for


development and testing
 a form serialization and validation system that can
translate between HTML forms and values suitable for
storage in the database
 a template system that utilizes the concept
of inheritance borrowed from object-oriented
programming
 a caching framework that can use any of several cache
methods
 support for middleware classes that can intervene at
various stages of request processing and carry out
custom functions
 an internal dispatcher system that allows components of
an application to communicate events to each other via
pre-defined signals
 an internationalization system, including translations of
Django's own components into a variety of languages
 a serialization system that can produce and
read XML and/or JSON representations of Django
model instances
 a system for extending the capabilities of the template
engine
 an interface to Python's built-in unit test framework
 Django REST framework is a powerful and flexible
toolkit for building Web APIs.
Bundled applications[edit]
The main Django distribution also bundles a number of applications in its "contrib"
package, including:

 an extensible authentication system


 the dynamic administrative interface
 tools for generating RSS and Atom syndication feeds
 a "Sites" framework that allows one Django installation
to run multiple websites, each with their own content
and applications
 tools for generating Google Sitemaps
 built-in mitigation for cross-site request forgery, cross-
site scripting, SQL injection, password cracking and
other typical web attacks, most of them turned on by
default[18][19]
 a framework for creating GIS applications
Extensibility[edit]
This section relies too much on references to primary sources. Please
improve this section by adding secondary or tertiary sources. (January
2015) (Learn how and when to remove this template message)

Django's configuration system allows third party code to be plugged into a regular
project, provided that it follows the reusable app [20] conventions. More than 2500
packages[21] are available to extend the framework's original behavior, providing
solutions to issues the original tool didn't tackle: registration, search, API provision
and consumption, CMS, etc.
This extensibility is, however, mitigated by internal components' dependencies.
While the Django philosophy implies loose coupling, [22] the template filters and tags
assume one engine implementation, and both the auth and admin bundled
applications require the use of the internal ORM. None of these filters or bundled
apps are mandatory to run a Django project, but reusable apps tend to depend on
them, encouraging developers to keep using the official stack in order to benefit fully
from the apps ecosystem.
Server arrangements[edit]
Django can be run in conjunction with Apache, Nginx using WSGI, Gunicorn,
or Cherokee using flup (a Python module).[23][24] Django also includes the ability to
launch a FastCGI server, enabling use behind any web server which supports
FastCGI, such as Lighttpd or Hiawatha. It is also possible to use other WSGI-
compliant web servers.[25] Django officially supports four database
backends: PostgreSQL, MySQL, SQLite, and Oracle. Microsoft SQL Server can be
used with django-mssql on Microsoft operating systems,[26] while similarly external
backends exist for IBM Db2,[27] SQL Anywhere[28] and Firebird.[29] There is a fork named
django-nonrel, which supports NoSQL databases, such as MongoDB and Google
App Engine's Datastore.[30]
Django may also be run in conjunction with Jython on any Java EE application
server such as GlassFish or JBoss. In this case django-jython must be installed in
order to provide JDBC drivers for database connectivity, which also can provide
functionality to compile Django in to a .war suitable for deployment. [31]
Google App Engine includes support for Django version 1.x.x [32] as one of the bundled
frameworks.

Version history[edit]
The Django team will occasionally designate certain releases to be “long-term
support” (LTS) releases.[33] LTS releases will get security and data loss fixes applied
for a guaranteed period of time, typically 3+ years, regardless of the pace of releases
afterwards.

Version Date[34] Notes[35]

16 Nov
0.90[36]
2005

0.91[37] 11 Jan 2006 "new-admin"

0.95[38] 29 Jul 2006 "magic removal"

23 Mar
0.96[39] "newforms", testing tools
2007

1.0[40] 3 Sep 2008 API stability, decoupled admin, unicode

1.1[41] 29 Jul 2009 Aggregates, transaction based tests


17 May
1.2[42] Multiple db connections, CSRF, model validation
2010

23 Mar
1.3[43] Class based views, staticfiles
2011

23 Mar
1.4 LTS[44] Timezones, in browser testing, app templates.
2012

1.5[45] 26 Feb 2013 Python 3 Support, configurable user model

Dedicated to Malcolm Tredinnick, db transaction management, connection


1.6[46] 6 Nov 2013
pooling.

1.7[47] 2 Sep 2014 Migrations, application loading and configuration.

Native support for multiple template engines. Support ended on 1 April


1.8 LTS[48] 1 Apr 2015
2018

1.9[49] 1 Dec 2015 Automatic password validation. New styling for admin interface.

1.10[50] 1 Aug 2016 Full text search for PostgreSQL. New-style middleware.

1.11
4 Apr 2017 Last version to support Python 2.7. Support ended on 1 April 2020
LTS[51]

First Python 3-only release, Simplified URL routing syntax, Mobile friendly
2.0[52] 2 Dec 2017
admin.

2.1[53] 1 Aug 2018 Model "view" permission.

2.2 LTS[54] 1 Apr 2019 Security release. Supported until at least April 2022

3.0[55] 2 Dec 2019


3.1[56] Aug 2020

3.2 LTS[56] Apr 2021 Supported until at least April 2024

4.0[56] Dec 2021 Supported until at least April 2023

Old version

Older version, still maintained

Latest version

Latest preview version

Future release

Development tools with Django support[edit]


For developing a Django project, no special tools are necessary, since the source
code can be edited with any conventional text editor. Nevertheless, editors
specialized on computer programming can help increase the productivity of
development, e.g., with features such as syntax highlighting. Since Django is written
in Python, text editors which are aware of Python syntax are beneficial in this regard.
Integrated development environments (IDE) add further functionality, such
as debugging, refactoring, and unit testing. As with plain editors, IDEs with support
for Python can be beneficial. Some IDEs that are specialized on Python additionally
have integrated support for Django projects, so that using such an IDE when
developing a Django project can help further increase productivity. For comparison
of such Python IDEs, see the main article:
Main article: Comparison of integrated development environments §   Python

Community[edit]
There is a semiannual conference for Django developers and users, named
"DjangoCon", that has been held since September 2008. DjangoCon is held annually
in Europe, in May or June;[57] while another is held in the United States in August or
September, in various cities.[58] The 2012 DjangoCon took place in Washington, D.C.,
from 3 to 8 September. 2013 DjangoCon was held in Chicago at the Hyatt Regency
Hotel and the post-conference Sprints were hosted at Digital Bootcamp, computer
training center.[59] The 2014 DjangoCon US returned to Portland, OR from 30 August
to 6 September. The 2015 DjangoCon US was held in Austin, TX from 6 to 11
September at the AT&T Executive Center. The 2016 DjangoCon US was held in
Philadelphia, PA at The Wharton School of the University of Pennsylvania from 17 to
22 July.[60]The 2017 DjangoCon US was held in Spokane, WA [61]; in 2018 DjangoCon
US was held in San Diego, CA.[62] DjangoCon US 2019 was held again in San Diego,
CA from Sept 22–27.
Django mini-conferences are usually held every year as part of the Australian Python
Conference 'PyCon AU'.[63] Previously, these mini-conferences have been held in:

 Hobart, Australia, in July 2013,


 Brisbane, Australia, in August 2014 and 2015,
 Melbourne, Australia in August 2016 and 2017, and
 Sydney, Australia, in August 2018 and 2019.
Django has spawned user groups and meetups around the world, [64] the most notable
group is the Django Girls organization, which began in Poland but now has had
events in 91 countries.[65][66]

Ports to other languages[edit]


Programmers have ported Django's template design from Python to other languages,
providing decent cross-platform support. Some of these options are more direct
ports; others, though inspired by Django and retaining its concepts, take the liberty to
deviate from Django's design:

 Liquid for Ruby[67]
 Template::Swig for Perl[68]
 Twig for PHP and JavaScript[69][70]
 Jinja for Python[71]
 ErlyDTL for Erlang[72]

See also[edit]

 Free and open-source software portal

 Flask (web framework)


 Pylons project
 Comparison of web frameworks
 Web2py
 Ruby on Rails

References[edit]
1. ^ "Django FAQ". Retrieved 27 March  2019.
2. ^ https://github.com/django/django/releases
3. ^ "Django Download". Retrieved  5 May 2020.
4. ^ "FAQ: General - Django documentation - Django". Retrieved  30
April  2016.
5. ^ Jump up to:a b "FAQ: General - Django documentation - Django".
Retrieved 30 April2016.
6. ^ Jump up to:    Adrian Holovaty, Jacob Kaplan-Moss; et al. The
a b

Django Book. Archived from  the original on 2 September 2016.


Retrieved 3 September  2013. Django follows this MVC pattern
closely enough that it can be called an MVC framework
7. ^ "Design Philosophies". Django. Retrieved 18 March  2018.
8. ^ "20 Creative Websites Running Django".
9. ^ "What Powers Instagram: Hundreds of Instances, Dozens of
Technologies".
10. ^ "Python".  Mozilla Developer Network. Retrieved  30 April 2016.
11. ^ Opensource.washingtontimes.com. Retrieved on 2014-05-30.
12. ^ "Scaling Django to 8 Billion Page Views".
13. ^ "DjangoSuccessStoryBitbucket – Django". Archived from the
original on 20 April 2016. Retrieved 30 April  2016.
14. ^ "The anti-Facebook: one in four American neighborhoods are
now using this private social network".  The Verge. Retrieved 16
June  2016.
15. ^ "What is the history of the Django web framework? Why has it
been described as "developed in a newsroom"?". Retrieved  18
October  2019.
16. ^ "Introducing Django". The Django Book. Retrieved 29
July  2018.
17. ^ "Announcing the Django Software Foundation - Weblog -
Django". Retrieved 30 April  2016.
18. ^ "Security in Django". Django Project. Retrieved  25 March 2013.
19. ^ Socol, James (2012).  "Best Basic Security Practices (Especially
with Django)". Retrieved 25 March  2013.
20. ^ "What is a reusable app? — django-reusable-app-docs 0.1.0
documentation". Retrieved 30 April  2016.
21. ^ "Django Packages". Retrieved 30 April  2016.
22. ^ "Design philosophies - Django documentation - Django".
Retrieved 30 April2016.
23. ^ Django documentation of deployment Archived 11 January 2012
at the Wayback Machine
24. ^ "Cherokee Web Server - Cookbook Setting up Django -
Cherokee Documentation". Retrieved 30 April  2016.
25. ^ How to use Django with Apache and mod_wsgi Archived 8
March 2013 at the Wayback Machine. Official Django
documentation.
26. ^ "Manfre / django-mssql / source / — Bitbucket". Retrieved  30
April  2016.
27. ^ ibmdb.  "GitHub - ibmdb/python-ibmdb: Automatically exported
from code.google.com/p/ibm-db". GitHub. Retrieved  30
April  2016.
28. ^ "Google Code Archive - Long-term storage for Google Code
Project Hosting". Retrieved 30 April  2016.
29. ^ maxirobaina.  "GitHub - maxirobaina/django-firebird: Firebird
SQL backend for django".  GitHub. Retrieved 30 April  2016.
30. ^ "Django non-rel". Retrieved  30 April 2016.
31. ^ beachmachine. "GitHub - beachmachine/django-jython:
Database backends and extensions for Django development on
top of Jython". GitHub. Retrieved  30 April 2016.
32. ^ Running Pure Django Projects on Google App Engine.
Code.google.com (2010-11-01). Retrieved on 5 December 2011.
33. ^ "Django's release process - Django documentation - Django".
Retrieved 30 April  2016.
34. ^ "Download Django - Django". www.djangoproject.com.
35. ^ "FAQ: Installation - Django documentation -
Django". docs.djangoproject.com.
36. ^ "Introducing Django 0.90". Django weblog. Retrieved 2 February
2013.
37. ^ "Django 0.91 released". Django weblog. Retrieved 2 February
2013.
38. ^ "Introducing Django 0.95". Django weblog. Retrieved 2 February
2013.
39. ^ "Announcing Django 0.96!". Django weblog. Retrieved 2
February 2013.
40. ^ "Django 1.0 released!". Django weblog. Retrieved 2 February
2013.
41. ^ "Django 1.1 released". Django weblog. Retrieved 2 February
2013.
42. ^ "Django 1.2 released". Django weblog. Retrieved 2 February
2013.
43. ^ "Django 1.3 released". Django weblog. Retrieved 2 February
2013.
44. ^ "Django 1.4 released". Django weblog. Retrieved 2 February
2013.
45. ^ "Django 1.5 released" Django weblog. Retrieved 27 February
2013.
46. ^ "Django 1.6 released" Django weblog. Retrieved 6 November
2013.
47. ^ "Django 1.7 released" Django weblog. Retrieved 4 September
2014.
48. ^ "Django 1.8 released" Django weblog. Retrieved 2 April 2015.
49. ^ "Django 1.9 released" Django weblog. Retrieved 1 December
2015.
50. ^ "Django 1.10 released" Django weblog. Retrieved 1 August
2016.
51. ^ "Django 1.11 released" Django weblog. Retrieved 4 April 2017.
52. ^ "Django 2.0 released" Django weblog. Retrieved 3 December
2017.
53. ^ "Django 2.1 released" Django weblog. Retrieved 2 August 2018.
54. ^ Django 2.2.3 release notes Retrieved 1 July 2019.
55. ^ Django 3.0 release notes Retrieved 2 December 2019.
56. ^ Jump up to:a b c Download Django
57. ^ DjangoCon EU series Archived 4 March 2016 at the Wayback
Machine, Lanyrd.com
58. ^ DjangoCon US series Archived 2 April 2016 at the Wayback
Machine, Lanyrd.com
59. ^ "DjangoCon". DjangoCon. Archived from  the original on 5
August 2012. Retrieved  29 July 2012.
60. ^ "DjangoCon". DjangoCon. Retrieved 1 December 2016.
61. ^ "DjangoCon". DjangoCon.
62. ^ "DjangoCon". DjangoCon.
63. ^ DjangoCon AU. Djangocon.com.au. Retrieved on 2019-12-16.
64. ^ https://www.meetup.com/topics/django/
65. ^ "Lawrence-born Django, which revolutionized website
construction, celebrating its 10th anniversary". Lawrence Journal-
World. 9 July 2015. Retrieved  18 October 2019.
66. ^ "Django Girls - start your journey with programming".
Retrieved 21 October2019.
67. ^ Shopify. "– Liquid template language".  Liquid template
language.
68. ^ "Template::Swig - Perl interface to Django-inspired Swig
templating engine. - metacpan.org".  metacpan.org.
69. ^ Symfony.  "Home - Twig - The flexible, fast, and secure PHP
template engine". twig.sensiolabs.org.
70. ^ "twigjs/twig.js".  GitHub.
71. ^ "Welcome - Jinja2 (The Python Template
Engine)". jinja.pocoo.org.
72. ^ "erlydtl/erlydtl". GitHub.

Bibliography[edit]
 Roy Greenfeld, Daniel; Roy Greenfeld, Audrey (2015), Two Scoops of
Django: Best Practices for Django 1.8 (3rd ed.), Two Scoops Press,
p. 531,  ISBN  0981467342
 Jaiswal, Sanjeev; Kumar, Ratan (22 June 2015), Learning Django
Web Development (1st ed.), Packt, p.  405, ISBN 1783984406
 Ravindrun, Arun (31 March 2015), Django Design Patterns and Best
Practices (1st ed.), Packt, p.  180, ISBN 1783986646
 Osborn, Tracy (May 2015), Hello Web App (1st ed.), Tracy Osborn,
p. 142,  ISBN  0986365912
 Bendoraitis, Aidas (October 2014), Web Development with Django
Cookbook  (1st ed.), Packt, p. 294,  ISBN  178328689X
 Baumgartner, Peter; Malet, Yann (2015), High Performance
Django  (1st ed.), Lincoln Loop, p.  184, ISBN 1508748128
 Elman, Julia; Lavin, Mark (2014),  Lightweight Django (1st ed.),
O'Reilly Media, p. 246,  ISBN  149194594X
 Percival, Harry (2014), Test-Driven Development with Python (1st ed.),
O'Reilly Media, p. 480,  ISBN  1449364829

This list is an extraction from Current Django Books

External links[edit]
Wikimedia Commons has
media related to Django
(web framework).

 Official website 

show
Python web frameworks

show

Web frameworks
Categories: 
 Free software programmed in Python
 Python web frameworks
 Software using the BSD license
Navigation menu
 Not logged in
 Talk
 Contributions
 Create account
 Log in
 Article
 Talk
 Read
 Edit
 View history
Search
Search Go

 Main page
 Contents
 Featured content
 Current events
 Random article
 Donate to Wikipedia
 Wikipedia store
Interaction
 Help
 About Wikipedia
 Community portal
 Recent changes
 Contact page
Tools
 What links here
 Related changes
 Upload file
 Special pages
 Permanent link
 Page information
 Wikidata item
 Cite this page
In other projects
 Wikimedia Commons
Print/export
 Create a book
 Download as PDF
 Printable version
Languages
 ‫العربية‬
 বাংলা
 Español
 Français
 മലയാളം
 Português
 Русский
 தமிழ்
 中文
19 more
Edit links
 This page was last edited on 11 May 2020, at 06:42 (UTC).
 Text is available under the Creative Commons Attribution-ShareAlike License;
additional terms may apply. By using this site, you agree to the Terms of
Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia
Foundation, Inc., a non-profit organization.
 Privacy policy

 About Wikipedia

 Disclaimers

 Contact Wikipedia

 Developers

 Statistics

 Cookie statement

 Mobile view

Print(‘hello test 1’)

You might also like