Django a grandi à partir de besoins très concrets : World Online, un éditeur de journal Web, a la charge de construire des applications Web avec des impératifs temporels hérités du journalisme. Dans le rythme soutenu de la salle de presse, World Online ne dispose généralement que de quelques heures pour délivrer une application Web de sa phase d’ébauche jusqu’à sa mise à disposition publique.
Dans le même temps, les développeurs de World Online ont toujours été perfectionnistes quant au suivi des bonnes pratiques de développement Web.
À l’automne 2003, les développeurs de World Online (Adrian Holovaty et Simon Willison) ont abandonné PHP au profit de Python pour développer leurs sites Web. Tout en développant intensément des sites interactifs riches tels que Lawrence.com, ils commencèrent à composer un environnement Web générique leur permettant de construire des applications Web de plus en plus vite. Il l’améliorèrent constamment pendant deux ans.
En été 2005, World Online accepta de libérer le logiciel ainsi réalisé, Django. Django n’aurait pas pu exister sans un ensemble de projets libres, Apache, Python et PostgreSQL pour n’en nommer que quelques-uns. Nous sommes ravis de pouvoir reverser quelque chose à la communauté du libre.
Django est nommé en hommage à Django Reinhardt, un guitariste de jazz d’origine gitane des années 1930 jusqu’au début des années 1950. À ce jour, il est considéré comme l’un des meilleurs guitaristes de tous les temps.
Écoutez sa musique. Vous apprécierez.
Django se prononce JANG-oh. Cela rime avec FANG-oh. Le « D » est silencieux.
Nous avons également enregistré une séquence audio de la prononciation.
Yes, it’s quite stable. World Online has been using Django for many years. Sites built on Django have weathered traffic spikes of over one million hits an hour.
Yes. Compared to development time, hardware is cheap, and so Django is designed to take advantage of as much hardware as you can throw at it.
Django uses a “shared-nothing” architecture, which means you can add hardware at any level – database servers, caching servers or Web/application servers.
The framework cleanly separates components such as its database layer and application layer. And it ships with a simple-yet-powerful cache framework.
Django was originally developed at World Online, the Web department of a newspaper in Lawrence, Kansas, USA. Django’s now run by an international team of volunteers; you can read all about them over at the list of committers
DjangoSites.org features a constantly growing list of Django-powered sites.
Well, the standard names are debatable.
In our interpretation of MVC, the “view” describes the data that gets presented to the user. It’s not necessarily how the data looks, but which data is presented. The view describes which data you see, not how you see it. It’s a subtle distinction.
So, in our case, a “view” is the Python callback function for a particular URL, because that callback function describes which data is presented.
Furthermore, it’s sensible to separate content from presentation – which is where templates come in. In Django, a “view” describes which data is presented, but a view normally delegates to a template, which describes how the data is presented.
Where does the “controller” fit in, then? In Django’s case, it’s probably the framework itself: the machinery that sends a request to the appropriate view, according to the Django URL configuration.
If you’re hungry for acronyms, you might say that Django is a “MTV” framework – that is, “model”, “template”, and “view.” That breakdown makes much more sense.
At the end of the day, of course, it comes down to getting stuff done. And, regardless of how things are named, Django gets stuff done in a way that’s most logical to us.
We’re well aware that there are other awesome Web frameworks out there, and we’re not averse to borrowing ideas where appropriate. However, Django was developed precisely because we were unhappy with the status quo, so please be aware that “because <Framework X> does it” is not going to be sufficient reason to add a given feature to Django.
When Django was originally written a couple of years ago, Adrian and Simon spent quite a bit of time exploring the various Python Web frameworks available.
In our opinion, none of them were completely up to snuff.
We’re picky. You might even call us perfectionists. (With deadlines.)
Over time, we stumbled across open-source libraries that did things we’d already implemented. It was reassuring to see other people solving similar problems in similar ways, but it was too late to integrate outside code: We’d already written, tested and implemented our own framework bits in several production settings – and our own code met our needs delightfully.
In most cases, however, we found that existing frameworks/tools inevitably had some sort of fundamental, fatal flaw that made us squeamish. No tool fit our philosophies 100%.
Like we said: We’re picky.
We’ve documented our philosophies on the design philosophies page.
No, Django is not a CMS, or any sort of “turnkey product” in and of itself. It’s a Web framework; it’s a programming tool that lets you build Web sites.
For example, it doesn’t make much sense to compare Django to something like Drupal, because Django is something you use to create things like Drupal.
Of course, Django’s automatic admin site is fantastic and timesaving – but the admin site is one module of Django the framework. Furthermore, although Django has special conveniences for building “CMS-y” apps, that doesn’t mean it’s not just as appropriate for building “non-CMS-y” apps (whatever that means!).
The Django docs are available in the docs directory of each Django tarball release. These docs are in reST (reStructuredText) format, and each text file corresponds to a Web page on the official Django site.
Because the documentation is stored in revision control, you can browse documentation changes just like you can browse code changes.
Technically, the docs on Django’s site are generated from the latest development versions of those reST documents, so the docs on the Django site may offer more information than the docs that come with the latest Django release.
Consult our developers for hire page for a list of Django developers who would be happy to help you.
You might also be interested in posting a job to http://djangogigs.com/ . If you want to find Django-capable people in your local area, try https://people.djangoproject.com/ .
It’s difficult to give an official citation format, for two reasons: citation formats can vary wildly between publications, and citation standards for software are still a matter of some debate.
For example, APA style, would dictate something like:
Django (Version 1.5) [Computer Software]. (2013). Retrieved from http://djangoproject.com.
However, the only true guide is what your publisher will accept, so get a copy of those guidelines and fill in the gaps as best you can.
If your referencing style guide requires a publisher name, use “Django Software Foundation”.
If you need a publishing location, use “Lawrence, Kansas”.
If you need a web address, use http://djangoproject.com.
If you need a name, just use “Django”, without any tagline.
If you need a publication date, use the year of release of the version you’re referencing (e.g., 2013 for v1.5)
Jan 13, 2016