1. ============
    
  2. FAQ: General
    
  3. ============
    
  4. 
    
  5. Why does this project exist?
    
  6. ============================
    
  7. 
    
  8. Django grew from a very practical need: World Online, a newspaper web
    
  9. operation, is responsible for building intensive web applications on journalism
    
  10. deadlines. In the fast-paced newsroom, World Online often has only a matter of
    
  11. hours to take a complicated web application from concept to public launch.
    
  12. 
    
  13. At the same time, the World Online web developers have consistently been
    
  14. perfectionists when it comes to following best practices of web development.
    
  15. 
    
  16. In fall 2003, the World Online developers (Adrian Holovaty and Simon Willison)
    
  17. ditched PHP and began using Python to develop its websites. As they built
    
  18. intensive, richly interactive sites such as Lawrence.com, they began to extract
    
  19. a generic web development framework that let them build web applications more
    
  20. and more quickly. They tweaked this framework constantly, adding improvements
    
  21. over two years.
    
  22. 
    
  23. In summer 2005, World Online decided to open-source the resulting software,
    
  24. Django. Django would not be possible without a whole host of open-source
    
  25. projects -- `Apache`_, `Python`_, and `PostgreSQL`_ to name a few -- and we're
    
  26. thrilled to be able to give something back to the open-source community.
    
  27. 
    
  28. .. _Apache: https://httpd.apache.org/
    
  29. .. _Python: https://www.python.org/
    
  30. .. _PostgreSQL: https://www.postgresql.org/
    
  31. 
    
  32. What does "Django" mean, and how do you pronounce it?
    
  33. =====================================================
    
  34. 
    
  35. Django is named after `Django Reinhardt`_, a jazz manouche guitarist from the 1930s
    
  36. to early 1950s. To this day, he's considered one of the best guitarists of all time.
    
  37. 
    
  38. Listen to his music. You'll like it.
    
  39. 
    
  40. Django is pronounced **JANG**-oh. Rhymes with FANG-oh. The "D" is silent.
    
  41. 
    
  42. We've also recorded an `audio clip of the pronunciation`_.
    
  43. 
    
  44. .. _Django Reinhardt: https://en.wikipedia.org/wiki/Django_Reinhardt
    
  45. .. _audio clip of the pronunciation: https://www.red-bean.com/~adrian/django_pronunciation.mp3
    
  46. 
    
  47. Is Django stable?
    
  48. =================
    
  49. 
    
  50. Yes, it's quite stable. Companies like Disqus, Instagram, Pinterest, and
    
  51. Mozilla have been using Django for many years. Sites built on Django have
    
  52. weathered traffic spikes of over 50 thousand hits per second.
    
  53. 
    
  54. Does Django scale?
    
  55. ==================
    
  56. 
    
  57. Yes. Compared to development time, hardware is cheap, and so Django is
    
  58. designed to take advantage of as much hardware as you can throw at it.
    
  59. 
    
  60. Django uses a "shared-nothing" architecture, which means you can add hardware
    
  61. at any level -- database servers, caching servers or web/application servers.
    
  62. 
    
  63. The framework cleanly separates components such as its database layer and
    
  64. application layer. And it ships with a simple-yet-powerful
    
  65. :doc:`cache framework </topics/cache>`.
    
  66. 
    
  67. Who's behind this?
    
  68. ==================
    
  69. 
    
  70. Django was originally developed at World Online, the web department of a
    
  71. newspaper in Lawrence, Kansas, USA. Django's now run by an international
    
  72. `team of volunteers <https://www.djangoproject.com/foundation/teams/>`_.
    
  73. 
    
  74. How is Django licensed?
    
  75. =======================
    
  76. 
    
  77. Django is distributed under :source:`the 3-clause BSD license <LICENSE>`. This
    
  78. is an open source license granting broad permissions to modify and redistribute
    
  79. Django.
    
  80. 
    
  81. Why does Django include Python's license file?
    
  82. ==============================================
    
  83. 
    
  84. Django includes code from the Python standard library. Python is distributed
    
  85. under a permissive open source license. :source:`A copy of the Python license
    
  86. <LICENSE.python>` is included with Django for compliance with Python's terms.
    
  87. 
    
  88. Which sites use Django?
    
  89. =======================
    
  90. 
    
  91. `DjangoSites.org`_ features a constantly growing list of Django-powered sites.
    
  92. 
    
  93. .. _DjangoSites.org: https://djangosites.org
    
  94. 
    
  95. .. _faq-mtv:
    
  96. 
    
  97. Django appears to be a MVC framework, but you call the Controller the "view", and the View the "template". How come you don't use the standard names?
    
  98. =====================================================================================================================================================
    
  99. 
    
  100. Well, the standard names are debatable.
    
  101. 
    
  102. In our interpretation of MVC, the "view" describes the data that gets presented
    
  103. to the user. It's not necessarily *how* the data *looks*, but *which* data is
    
  104. presented. The view describes *which data you see*, not *how you see it.* It's
    
  105. a subtle distinction.
    
  106. 
    
  107. So, in our case, a "view" is the Python callback function for a particular URL,
    
  108. because that callback function describes which data is presented.
    
  109. 
    
  110. Furthermore, it's sensible to separate content from presentation -- which is
    
  111. where templates come in. In Django, a "view" describes which data is presented,
    
  112. but a view normally delegates to a template, which describes *how* the data is
    
  113. presented.
    
  114. 
    
  115. Where does the "controller" fit in, then? In Django's case, it's probably the
    
  116. framework itself: the machinery that sends a request to the appropriate view,
    
  117. according to the Django URL configuration.
    
  118. 
    
  119. If you're hungry for acronyms, you might say that Django is a "MTV" framework
    
  120. -- that is, "model", "template", and "view." That breakdown makes much more
    
  121. sense.
    
  122. 
    
  123. At the end of the day, it comes down to getting stuff done. And, regardless of
    
  124. how things are named, Django gets stuff done in a way that's most logical to
    
  125. us.
    
  126. 
    
  127. <Framework X> does <feature Y> -- why doesn't Django?
    
  128. =====================================================
    
  129. 
    
  130. We're well aware that there are other awesome web frameworks out there, and
    
  131. we're not averse to borrowing ideas where appropriate. However, Django was
    
  132. developed precisely because we were unhappy with the status quo, so please be
    
  133. aware that "because <Framework X> does it" is not going to be sufficient reason
    
  134. to add a given feature to Django.
    
  135. 
    
  136. Why did you write all of Django from scratch, instead of using other Python libraries?
    
  137. ======================================================================================
    
  138. 
    
  139. When Django was originally written, Adrian and Simon spent quite a bit of time
    
  140. exploring the various Python web frameworks available.
    
  141. 
    
  142. In our opinion, none of them were completely up to snuff.
    
  143. 
    
  144. We're picky. You might even call us perfectionists. (With deadlines.)
    
  145. 
    
  146. Over time, we stumbled across open-source libraries that did things we'd
    
  147. already implemented. It was reassuring to see other people solving similar
    
  148. problems in similar ways, but it was too late to integrate outside code: We'd
    
  149. already written, tested and implemented our own framework bits in several
    
  150. production settings -- and our own code met our needs delightfully.
    
  151. 
    
  152. In most cases, however, we found that existing frameworks/tools inevitably had
    
  153. some sort of fundamental, fatal flaw that made us squeamish. No tool fit our
    
  154. philosophies 100%.
    
  155. 
    
  156. Like we said: We're picky.
    
  157. 
    
  158. We've documented our philosophies on the
    
  159. :doc:`design philosophies page </misc/design-philosophies>`.
    
  160. 
    
  161. Is Django a content-management-system (CMS)?
    
  162. ============================================
    
  163. 
    
  164. No, Django is not a CMS, or any sort of "turnkey product" in and of itself.
    
  165. It's a web framework; it's a programming tool that lets you build websites.
    
  166. 
    
  167. For example, it doesn't make much sense to compare Django to something like
    
  168. Drupal_, because Django is something you use to *create* things like Drupal.
    
  169. 
    
  170. Yes, Django's automatic admin site is fantastic and timesaving -- but the admin
    
  171. site is one module of Django the framework. Furthermore, although Django has
    
  172. special conveniences for building "CMS-y" apps, that doesn't mean it's not just
    
  173. as appropriate for building "non-CMS-y" apps (whatever that means!).
    
  174. 
    
  175. .. _Drupal: https://www.drupal.org/
    
  176. 
    
  177. How can I download the Django documentation to read it offline?
    
  178. ===============================================================
    
  179. 
    
  180. The Django docs are available in the ``docs`` directory of each Django tarball
    
  181. release. These docs are in reST (reStructuredText) format, and each text file
    
  182. corresponds to a web page on the official Django site.
    
  183. 
    
  184. Because the documentation is :source:`stored in revision control <docs>`, you
    
  185. can browse documentation changes just like you can browse code changes.
    
  186. 
    
  187. Technically, the docs on Django's site are generated from the latest development
    
  188. versions of those reST documents, so the docs on the Django site may offer more
    
  189. information than the docs that come with the latest Django release.
    
  190. 
    
  191. How do I cite Django?
    
  192. =====================
    
  193. 
    
  194. It's difficult to give an official citation format, for two reasons: citation
    
  195. formats can vary wildly between publications, and citation standards for
    
  196. software are still a matter of some debate.
    
  197. 
    
  198. For example, `APA style`_,  would dictate something like::
    
  199. 
    
  200.     Django (Version 1.5) [Computer Software]. (2013). Retrieved from https://www.djangoproject.com/.
    
  201. 
    
  202. However, the only true guide is what your publisher will accept, so get a copy
    
  203. of those guidelines and fill in the gaps as best you can.
    
  204. 
    
  205. If your referencing style guide requires a publisher name, use "Django Software
    
  206. Foundation".
    
  207. 
    
  208. If you need a publishing location, use "Lawrence, Kansas".
    
  209. 
    
  210. If you need a web address, use https://www.djangoproject.com/.
    
  211. 
    
  212. If you need a name, just use "Django", without any tagline.
    
  213. 
    
  214. If you need a publication date, use the year of release of the version you're
    
  215. referencing (e.g., 2013 for v1.5)
    
  216. 
    
  217. .. _APA style: https://apastyle.apa.org/