summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/conf.py3
-rw-r--r--docs/glossary.rst9
-rw-r--r--docs/narr/install.rst12
-rw-r--r--docs/narr/project.rst38
-rw-r--r--docs/narr/renderers.rst10
-rw-r--r--docs/narr/sessions.rst24
-rw-r--r--docs/quick_tour.rst23
-rw-r--r--docs/quick_tour/jinja2/hello_world.jinja23
-rw-r--r--docs/quick_tutorial/requirements.rst24
9 files changed, 74 insertions, 72 deletions
diff --git a/docs/conf.py b/docs/conf.py
index ee852aa51..3b6e75a17 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -73,9 +73,6 @@ intersphinx_mapping = {
'http://docs.pylonsproject.org/projects/deform/en/latest',
None),
'sqla': ('http://docs.sqlalchemy.org/en/latest', None),
- 'beaker': (
- 'http://docs.pylonsproject.org/projects/pyramid_beaker/en/latest',
- None),
'who': ('http://docs.repoze.org/who/latest', None),
'python': ('http://docs.python.org', None),
'python3': ('http://docs.python.org/3', None),
diff --git a/docs/glossary.rst b/docs/glossary.rst
index 7dc69c7c4..398f945a4 100644
--- a/docs/glossary.rst
+++ b/docs/glossary.rst
@@ -1009,7 +1009,8 @@ Glossary
Green Unicorn
Aka ``gunicorn``, a fast :term:`WSGI` server that runs on UNIX under
- Python 2.6+ or Python 3.1+. See http://gunicorn.org/ for detailed information.
+ Python 2.6+ or Python 3.1+. See http://gunicorn.org/ for detailed
+ information.
predicate factory
A callable which is used by a third party during the registration of a
@@ -1021,3 +1022,9 @@ Glossary
A Python :term:`distribution` that uses Pyramid's extensibility
to plug into a Pyramid application and provide extra,
configurable services.
+
+ pyramid_redis_sessions
+ A package by Eric Rasmussen which allows you to store Pyramid session
+ data in a Redis database. See
+ https://pypi.python.org/pypi/pyramid_redis_sessions for more information.
+
diff --git a/docs/narr/install.rst b/docs/narr/install.rst
index f3f736df6..e419a8b20 100644
--- a/docs/narr/install.rst
+++ b/docs/narr/install.rst
@@ -289,9 +289,9 @@ Installing :app:`Pyramid` Into the Virtual Python Environment
After you've got your virtualenv installed, you may install :app:`Pyramid`
itself using the following commands:
-.. code-block:: text
-
- $ $VENV/bin/easy_install pyramid
+.. parsed-literal::
+
+ $ $VENV/bin/easy_install "pyramid==\ |release|\ "
The ``easy_install`` command will take longer than the previous ones to
complete, as it downloads and installs a number of dependencies.
@@ -368,9 +368,9 @@ You can use Pyramid on Windows under Python 2 or 3.
#. Use ``easy_install`` to get :app:`Pyramid` and its direct dependencies
installed:
- .. code-block:: text
-
- c:\env> %VENV%\Scripts\easy_install pyramid
+ .. parsed-literal::
+
+ c:\\env> %VENV%\\Scripts\\easy_install "pyramid==\ |release|\ "
What Gets Installed
-------------------
diff --git a/docs/narr/project.rst b/docs/narr/project.rst
index f3050f805..9451f41b1 100644
--- a/docs/narr/project.rst
+++ b/docs/narr/project.rst
@@ -144,7 +144,7 @@ contains no space characters, so it's wise to *avoid* a path that contains
i.e. ``My Documents``. As a result, the author, when he uses Windows, just
puts his projects in ``C:\projects``.
-.. warning::
+.. warning::
You’ll need to avoid using ``pcreate`` to create a project with the same
name as a Python standard library component. In particular, this means you
@@ -193,10 +193,10 @@ Elided output from a run of this command on UNIX is shown below:
...
Finished processing dependencies for MyProject==0.0
-This will install a :term:`distribution` representing your project into the
-interpreter's library set so it can be found by ``import`` statements and by
-other console scripts such as ``pserve``, ``pshell``, ``proutes`` and
-``pviews``.
+This will install a :term:`distribution` representing your project
+into the virtual environment interpreter's library set so it can be
+found by ``import`` statements and by other console scripts such as
+``pserve``, ``pshell``, ``proutes`` and ``pviews``.
.. index::
single: running tests
@@ -871,18 +871,17 @@ specification` that specifies the ``mytemplate.pt`` file within the
``templates`` directory of the ``myproject`` package. The asset
specification could have also been specified as
``myproject:templates/mytemplate.pt``; the leading package name and colon is
-optional. The template file it actually points to is a :term:`Chameleon` ZPT
-template file.
+optional. The template file pointed to is a :term:`Chameleon` ZPT
+template file (``templates/my_template.pt``).
This view callable function is handed a single piece of information: the
:term:`request`. The *request* is an instance of the :term:`WebOb`
``Request`` class representing the browser's request to our server.
-This view returns a dictionary. When this view is invoked, a
-:term:`renderer` converts the dictionary returned by the view into HTML, and
-returns the result as the :term:`response`. This view is configured to
-invoke a renderer which uses a :term:`Chameleon` ZPT template
-(``templates/my_template.pt``).
+This view is configured to invoke a :term:`renderer` on a template. The
+dictionary the view returns (on line 6) provides the value the renderer
+substitutes into the template when generating HTML. The renderer then
+returns the HTML in a :term:`response`.
See :ref:`views_which_use_a_renderer` for more information about how views,
renderers, and templates relate and cooperate.
@@ -971,12 +970,15 @@ named ``views`` instead of within a single ``views.py`` file, you might:
- Create a ``views`` directory inside your ``myproject`` package directory
(the same directory which holds ``views.py``).
-- *Move* the existing ``views.py`` file to a file inside the new ``views``
- directory named, say, ``blog.py``.
+- Create a file within the new ``views`` directory named ``__init__.py``. (It
+ can be empty. This just tells Python that the ``views`` directory is a
+ *package*.)
-- Create a file within the new ``views`` directory named ``__init__.py`` (it
- can be empty, this just tells Python that the ``views`` directory is a
- *package*.
+- *Move* the existing ``views.py`` file to a file inside the new ``views``
+ directory named, say, ``blog.py``. Because the ``templates`` directory
+ remains in the ``myproject`` package, the template :term:`asset
+ specification` values in ``blog.py`` must now be fully qualified with the
+ project's package name (``myproject:templates/blog.pt``).
You can then continue to add view callable functions to the ``blog.py``
module, but you can also add other ``.py`` files which contain view callable
@@ -1025,7 +1027,7 @@ server. Waitress is a server that is suited for development and light
production usage. It's not the fastest nor the most featureful WSGI server.
Instead, its main feature is that it works on all platforms that Pyramid
needs to run on, making it a good choice as a default server from the
-perspective of Pyramid's developers.
+perspective of Pyramid's developers.
Any WSGI server is capable of running a :app:`Pyramid` application. But we
suggest you stick with the default server for development, and that you wait
diff --git a/docs/narr/renderers.rst b/docs/narr/renderers.rst
index 3059aef35..4046c67fa 100644
--- a/docs/narr/renderers.rst
+++ b/docs/narr/renderers.rst
@@ -49,10 +49,12 @@ Writing View Callables Which Use a Renderer
-------------------------------------------
As we've seen, a view callable needn't always return a Response object.
-Instead, it may return an arbitrary Python object, with the expectation
-that a :term:`renderer` will convert that object into a response instance on
-your behalf. Some renderers use a templating system; other renderers use
-object serialization techniques.
+Instead, it may return an arbitrary Python object, with the expectation that
+a :term:`renderer` will convert that object into a response instance on your
+behalf. Some renderers use a templating system; other renderers use object
+serialization techniques. In practice, renderers obtain application data
+values from Python dictionaries so, in practice, view callables which use
+renderers return Python dictionaries.
View configuration can vary the renderer associated with a view callable via
the ``renderer`` attribute. For example, this call to
diff --git a/docs/narr/sessions.rst b/docs/narr/sessions.rst
index 358977089..649d22bd2 100644
--- a/docs/narr/sessions.rst
+++ b/docs/narr/sessions.rst
@@ -99,6 +99,11 @@ example:
else:
return Response('Fred was not in the session')
+The first time this view is invoked produces ``Fred was not in the
+session``. Subsequent invocations produce ``Fred was in the
+session``, assuming of course that the client side maintains the
+session's identity across multiple requests.
+
You can use a session much like a Python dictionary. It supports all
dictionary methods, along with some extra attributes, and methods.
@@ -146,8 +151,6 @@ Some gotchas:
you've changed sessioning data.
.. index::
- single: pyramid_beaker
- single: Beaker
single: pyramid_redis_sessions
single: session factory (alternates)
@@ -156,19 +159,10 @@ Some gotchas:
Using Alternate Session Factories
---------------------------------
-At the time of this writing, exactly two alternate session factories
-exist.
-
-The first is named ``pyramid_redis_sessions``. It can be downloaded from PyPI.
-It uses Redis as a backend. It is the recommended persistent session solution
-at the time of this writing.
-
-The second is named ``pyramid_beaker``. This is a session factory that uses the
-`Beaker <http://beaker.groovie.org/>`_ library as a backend. Beaker has
-support for file-based sessions, database based sessions, and encrypted
-cookie-based sessions. See `the pyramid_beaker documentation
-<http://docs.pylonsproject.org/projects/pyramid_beaker/en/latest/>`_ for more
-information about ``pyramid_beaker``.
+At the time of this writing, exactly one project-endorsed alternate session
+factory exists named :term:`pyramid_redis_sessions`. It can be downloaded from
+PyPI. It uses the Redis database as a backend. It is the recommended
+persistent session solution at the time of this writing.
.. index::
single: session factory (custom)
diff --git a/docs/quick_tour.rst b/docs/quick_tour.rst
index 434dbdad5..2db18c8a7 100644
--- a/docs/quick_tour.rst
+++ b/docs/quick_tour.rst
@@ -17,26 +17,26 @@ Pyramid is a breeze. Unfortunately "standard" is not so simple in Python.
For this Quick Tour, it means:
`Python <http://www.python.org/download/releases/>`_, a
`virtual environment <http://docs.python.org/dev/library/venv.html>`_
-(or `virtualenv for Python 2.7 <https://pypi.python.org/pypi/virtualenv>`_,
+(or `virtualenv for Python 2.7 <https://pypi.python.org/pypi/virtualenv>`_),
and `setuptools <https://pypi.python.org/pypi/setuptools/>`_.
As an example, for Python 3.3+ on Linux:
-.. code-block:: bash
+.. parsed-literal::
$ pyvenv env33
$ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | env33/bin/python
- $ env33/bin/easy_install pyramid
+ $ env33/bin/easy_install "pyramid==\ |release|\ "
For Windows:
-.. code-block:: posh
+.. parsed-literal::
# Use your browser to download:
# https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
- c:\> c:\Python33\python -m venv env33
- c:\> env33\Scripts\python ez_setup.py
- c:\> env33\Scripts\easy_install pyramid
+ c:\\> c:\\Python33\\python -m venv env33
+ c:\\> env33\\Scripts\\python ez_setup.py
+ c:\\> env33\\Scripts\\easy_install "pyramid==\ |release|\ "
Of course Pyramid runs fine on Python 2.6+, as do the examples in this
*Quick Tour*. We're just showing Python 3 a little love (Pyramid had
@@ -297,7 +297,7 @@ The only change in our view...point the renderer at the ``.jinja2`` file:
Our Jinja2 template is very similar to our previous template:
.. literalinclude:: quick_tour/jinja2/hello_world.jinja2
- :language: jinja
+ :language: html
Pyramid's templating add-ons register a new kind of renderer into your
application. The renderer registration maps to different kinds of
@@ -729,8 +729,8 @@ that requires semi-permanent data to be saved. For example, a shopping
cart. This is called a :term:`session`.
Pyramid has basic built-in support for sessions, with add-ons such as
-*Beaker* (or your own custom sessioning engine) that provide richer
-session support. Let's take a look at the
+``pyramid_redis_sessions`` (or your own custom sessioning engine) that provide
+richer session support. Let's take a look at the
:doc:`built-in sessioning support <../narr/sessions>`. In our
``__init__.py`` we first import the kind of sessioning we want:
@@ -768,8 +768,7 @@ Jinja2 template:
.. seealso:: See Also:
:ref:`Quick Tutorial Sessions <qtut_sessions>`,
:ref:`sessions_chapter`, :ref:`flash_messages`,
- :ref:`session_module`, and
- :ref:`Beaker sessioning middleware <beaker:overview>`
+ :ref:`session_module`, and :term:`pyramid_redis_sessions`.
Databases
=========
diff --git a/docs/quick_tour/jinja2/hello_world.jinja2 b/docs/quick_tour/jinja2/hello_world.jinja2
index e177744b5..7a902dd3a 100644
--- a/docs/quick_tour/jinja2/hello_world.jinja2
+++ b/docs/quick_tour/jinja2/hello_world.jinja2
@@ -1,4 +1,5 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
<head>
<title>Hello World</title>
</head>
diff --git a/docs/quick_tutorial/requirements.rst b/docs/quick_tutorial/requirements.rst
index df63ff912..40e818807 100644
--- a/docs/quick_tutorial/requirements.rst
+++ b/docs/quick_tutorial/requirements.rst
@@ -94,23 +94,23 @@ and where our virtual environment will reside:
Final directory structure.
-The commands to do so are as follows:
+For Linux, the commands to do so are as follows:
.. code-block:: bash
# Mac and Linux
$ cd ~
- $ mkdir projects
- $ cd projects
- $ mkdir quick_tutorial
- $ cd quick_tutorial
+ $ mkdir -p projects/quick_tutorial
+ $ cd projects/quick_tutorial
+
+For Windows:
+
+.. code-block:: posh
# Windows
c:\> cd \
- c:\> mkdir projects
- c:\> cd projects
- c:\> mkdir quick_tutorial
- c:\> cd quick_tutorial
+ c:\> mkdir projects\quick_tutorial
+ c:\> cd projects\quick_tutorial
In the above figure, your user home directory is represented by ``~``. In
your home directory, all of your projects are in the ``projects`` directory.
@@ -208,13 +208,13 @@ Install Pyramid
We have our Python standard prerequisites out of the way. The Pyramid
part is pretty easy:
-.. code-block:: bash
+.. parsed-literal::
# Mac and Linux
- $ $VENV/bin/easy_install pyramid
+ $ $VENV/bin/easy_install "pyramid==\ |release|\ "
# Windows
- c:\> %VENV%\Scripts\easy_install pyramid
+ c:\\> %VENV%\\Scripts\\easy_install "pyramid==\ |release|\ "
Our Python virtual environment now has the Pyramid software available.