summaryrefslogtreecommitdiff
path: root/docs/ref/applications.txt
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2015-12-24 09:47:45 -0500
committerTim Graham <timograham@gmail.com>2015-12-30 17:46:53 -0500
commite0519301238b43633bab64054772f9a62634a05f (patch)
tree5764fe2eefc00bb5ea596f3c2aed747be3ba8536 /docs/ref/applications.txt
parente429c5186ceed81c4627165518e0c70c58e69595 (diff)
Fixed #25748 -- Added clarification on projects vs. applications.
Thanks Thomas Güttler for motivating this addition.
Diffstat (limited to 'docs/ref/applications.txt')
-rw-r--r--docs/ref/applications.txt22
1 files changed, 15 insertions, 7 deletions
diff --git a/docs/ref/applications.txt b/docs/ref/applications.txt
index 833ec12e34..87004a7afa 100644
--- a/docs/ref/applications.txt
+++ b/docs/ref/applications.txt
@@ -18,15 +18,19 @@ This registry is simply called :attr:`~django.apps.apps` and it's available in
Projects and applications
=========================
-Django has historically used the term **project** to describe an installation
-of Django. A project is defined primarily by a settings module.
+The term **project** describes a Django web application. The project Python
+package is defined primarily by a settings module, but it usually contains
+other things. For example, when you run ``django-admin startproject mysite``
+you'll get a ``mysite`` project directory that contains a ``mysite`` Python
+package with ``settings.py``, ``urls.py``, and ``wsgi.py``. The project package
+is often extended to include things like fixtures, CSS, and templates which
+aren't tied to a particular application.
The term **application** describes a Python package that provides some set of
-features. Applications may be reused in various projects.
-
-.. note::
- This terminology is somewhat confusing these days as it became common to
- use the phrase "web app" to describe what equates to a Django project.
+features. Applications :doc:`may be reused </intro/reusable-apps/>` in various
+projects. A project's root directory (the one that contains ``manage.py``) is
+usually the container for all of a project's applications which aren't
+installed separately.
Applications include some combination of models, views, templates, template
tags, static files, URLs, middleware, etc. They're generally wired into
@@ -41,6 +45,10 @@ interact with installed applications, mainly for configuration and also for
introspection. That's why the application registry maintains metadata in an
:class:`~django.apps.AppConfig` instance for each installed application.
+There's no restriction that a project package can't also be considered an
+application and have models, etc. (which would require adding it to
+:setting:`INSTALLED_APPS`).
+
.. _configuring-applications-ref:
Configuring applications