PageRenderTime 18ms CodeModel.GetById 13ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/docs/faq/general.txt

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