diff -r 5ff1fc726848 -r c6bca38c1cbf parts/django/docs/faq/general.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/parts/django/docs/faq/general.txt Sat Jan 08 11:20:57 2011 +0530 @@ -0,0 +1,192 @@ +FAQ: General +============ + +Why does this project exist? +---------------------------- + +Django grew from a very practical need: World Online, a newspaper Web +operation, is responsible for building intensive Web applications on journalism +deadlines. In the fast-paced newsroom, World Online often has only a matter of +hours to take a complicated Web application from concept to public launch. + +At the same time, the World Online Web developers have consistently been +perfectionists when it comes to following best practices of Web development. + +In fall 2003, the World Online developers (Adrian Holovaty and Simon Willison) +ditched PHP and began using Python to develop its Web sites. As they built +intensive, richly interactive sites such as Lawrence.com, they began to extract +a generic Web development framework that let them build Web applications more +and more quickly. They tweaked this framework constantly, adding improvements +over two years. + +In summer 2005, World Online decided to open-source the resulting software, +Django. Django would not be possible without a whole host of open-source +projects -- `Apache`_, `Python`_, and `PostgreSQL`_ to name a few -- and we're +thrilled to be able to give something back to the open-source community. + +.. _Apache: http://httpd.apache.org/ +.. _Python: http://www.python.org/ +.. _PostgreSQL: http://www.postgresql.org/ + +What does "Django" mean, and how do you pronounce it? +----------------------------------------------------- + +Django is named after `Django Reinhardt`_, a gypsy jazz guitarist from the 1930s +to early 1950s. To this day, he's considered one of the best guitarists of all time. + +Listen to his music. You'll like it. + +Django is pronounced **JANG**-oh. Rhymes with FANG-oh. The "D" is silent. + +We've also recorded an `audio clip of the pronunciation`_. + +.. _Django Reinhardt: http://en.wikipedia.org/wiki/Django_Reinhardt +.. _audio clip of the pronunciation: http://red-bean.com/~adrian/django_pronunciation.mp3 + +Is Django stable? +----------------- + +Yes. World Online has been using Django for more than three years. Sites built +on Django have weathered traffic spikes of over one million hits an hour and a +number of Slashdottings. Yes, it's quite stable. + +Does Django scale? +------------------ + +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 +:doc:`cache framework `. + +Who's behind this? +------------------ + +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 :doc:`list of committers +` + +Which sites use Django? +----------------------- + +The Django wiki features a consistently growing `list of Django-powered sites`_. +Feel free to add your Django-powered site to the list. + +.. _list of Django-powered sites: http://code.djangoproject.com/wiki/DjangoPoweredSites + +.. _mtv: + +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? +----------------------------------------------------------------------------------------------------------------------------------------------------- + +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. + + does -- why doesn't Django? +----------------------------------------------------- + +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 does it" is not going to be sufficient reason +to add a given feature to Django. + +Why did you write all of Django from scratch, instead of using other Python libraries? +-------------------------------------------------------------------------------------- + +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 +:doc:`design philosophies page `. + +Is Django a content-management-system (CMS)? +-------------------------------------------- + +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!). + +.. _Drupal: http://drupal.org/ + +How can I download the Django documentation to read it offline? +--------------------------------------------------------------- + +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. + +.. _stored in revision control: http://code.djangoproject.com/browser/django/trunk/docs + +Where can I find Django developers for hire? +-------------------------------------------- + +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 +http://djangopeople.net/ . + +.. _developers for hire page: http://code.djangoproject.com/wiki/DevelopersForHire