Browse Source

enumerates the states in which code is executed...

... and fixes an awkward phrasing.
reviewable/pr1887/r1
Zev Averbach 9 years ago
parent
commit
19dcdf4e70
  1. 30
      docs/appcontext.rst

30
docs/appcontext.rst

@ -5,12 +5,15 @@ The Application Context
.. versionadded:: 0.9 .. versionadded:: 0.9
One of the design ideas behind Flask is that there are two different One of the design ideas behind Flask is that there are at least two
“states” in which code is executed. The application setup state in which different “states” in which code is executed:
the application implicitly is on the module level. It starts when the
:class:`Flask` object is instantiated, and it implicitly ends when the 1. The application setup state, in which the application implicitly is
first request comes in. While the application is in this state a few on the module level.
assumptions are true:
This state starts when the :class:`Flask` object is instantiated, and
it implicitly ends when the first request comes in. While the
application is in this state, a few assumptions are true:
- the programmer can modify the application object safely. - the programmer can modify the application object safely.
- no request handling happened so far - no request handling happened so far
@ -18,18 +21,21 @@ assumptions are true:
modify it, there is no magic proxy that can give you a reference to modify it, there is no magic proxy that can give you a reference to
the application object you're currently creating or modifying. the application object you're currently creating or modifying.
In contrast, during request handling, a couple of other rules exist: 2. In contrast, in the request handling state, a couple of other rules
exist:
- while a request is active, the context local objects - while a request is active, the context local objects
(:data:`flask.request` and others) point to the current request. (:data:`flask.request` and others) point to the current request.
- any code can get hold of these objects at any time. - any code can get hold of these objects at any time.
There is a third state which is sitting in between a little bit. 3. There is also a third state somewhere in between 'module-level' and
'request-handling':
Sometimes you are dealing with an application in a way that is similar to Sometimes you are dealing with an application in a way that is similar to
how you interact with applications during request handling; just that there how you interact with applications during request handling, but without
is no request active. Consider, for instance, that you're sitting in an there being an active request. Consider, for instance, that you're
interactive Python shell and interacting with the application, or a sitting in an interactive Python shell and interacting with the
command line application. application, or a command line application.
The application context is what powers the :data:`~flask.current_app` The application context is what powers the :data:`~flask.current_app`
context local. context local.

Loading…
Cancel
Save