mirror of
				https://github.com/django/django.git
				synced 2025-10-28 16:16:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			219 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			219 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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: https://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, it's quite stable. Companies like Disqus, Instagram, Pinterest, and
 | |
| Mozilla have been using Django for many years. Sites built on Django have
 | |
| weathered traffic spikes of over 50 thousand hits per second.
 | |
| 
 | |
| 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 </topics/cache>`.
 | |
| 
 | |
| 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
 | |
| :doc:`team of volunteers </internals/team>`.
 | |
| 
 | |
| Which sites use Django?
 | |
| -----------------------
 | |
| 
 | |
| `DjangoSites.org`_ features a constantly growing list of Django-powered sites.
 | |
| 
 | |
| .. _DjangoSites.org: http://djangosites.org
 | |
| 
 | |
| .. _faq-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.
 | |
| 
 | |
| <Framework X> does <feature Y> -- 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 <Framework X> 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 </misc/design-philosophies>`.
 | |
| 
 | |
| 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: https://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: https://github.com/django/django/tree/master/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 https://djangogigs.com/ .
 | |
| If you want to find Django-capable people in your local area, try
 | |
| https://people.djangoproject.com/ .
 | |
| 
 | |
| .. _developers for hire page: https://code.djangoproject.com/wiki/DevelopersForHire
 | |
| 
 | |
| How do I cite Django?
 | |
| ---------------------
 | |
| 
 | |
| 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 https://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 https://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)
 | |
| 
 | |
| .. _APA style: http://www.apastyle.org
 |