summaryrefslogtreecommitdiff
path: root/docs/quick_tutorial/routing.rst
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2016-04-17 15:11:14 -0400
committerChris McDonough <chrism@plope.com>2016-04-17 15:11:14 -0400
commit97ab509ae27ce08992ccfbad8eba91613779dee3 (patch)
treeaf4cad2d4d8c3e065ff390d1b9874c8038a623a4 /docs/quick_tutorial/routing.rst
parentdf7a123a847e2243f38688c033f06200382ba139 (diff)
parent61663444a805f432638e6edf7cca76213f0d6029 (diff)
downloadpyramid-97ab509ae27ce08992ccfbad8eba91613779dee3.tar.gz
pyramid-97ab509ae27ce08992ccfbad8eba91613779dee3.tar.bz2
pyramid-97ab509ae27ce08992ccfbad8eba91613779dee3.zip
Merge branch 'master' of github.com:Pylons/pyramid
Diffstat (limited to 'docs/quick_tutorial/routing.rst')
-rw-r--r--docs/quick_tutorial/routing.rst71
1 files changed, 37 insertions, 34 deletions
diff --git a/docs/quick_tutorial/routing.rst b/docs/quick_tutorial/routing.rst
index 1b79a5889..27c8c2c22 100644
--- a/docs/quick_tutorial/routing.rst
+++ b/docs/quick_tutorial/routing.rst
@@ -4,41 +4,44 @@
11: Dispatching URLs To Views With Routing
==========================================
-Routing matches incoming URL patterns to view code. Pyramid's routing
-has a number of useful features.
+Routing matches incoming URL patterns to view code. Pyramid's routing has a
+number of useful features.
+
Background
==========
-Writing web applications usually means sophisticated URL design. We
-just saw some Pyramid machinery for requests and views. Let's look at
-features that help in routing.
+Writing web applications usually means sophisticated URL design. We just saw
+some Pyramid machinery for requests and views. Let's look at features that help
+in routing.
Previously we saw the basics of routing URLs to views in Pyramid.
-- Your project's "setup" code registers a route name to be used when
- matching part of the URL
+- Your project's "setup" code registers a route name to be used when matching
+ part of the URL
-- Elsewhere, a view is configured to be called for that route name
+- Elsewhere a view is configured to be called for that route name.
.. note::
- Why do this twice? Other Python web frameworks let you create a
- route and associate it with a view in one step. As
- illustrated in :ref:`routes_need_ordering`, multiple routes might match the
- same URL pattern. Rather than provide ways to help guess, Pyramid lets you
- be explicit in ordering. Pyramid also gives facilities to avoid the
- problem. It's relatively easy to build a system that uses implicit route
- ordering with Pyramid too. See `The Groundhog series of screencasts
- <http://bfg.repoze.org/videos#groundhog1>`_ if you're interested in
+ Why do this twice? Other Python web frameworks let you create a route and
+ associate it with a view in one step. As illustrated in
+ :ref:`routes_need_ordering`, multiple routes might match the same URL
+ pattern. Rather than provide ways to help guess, Pyramid lets you be
+ explicit in ordering. Pyramid also gives facilities to avoid the problem.
+ It's relatively easy to build a system that uses implicit route ordering
+ with Pyramid too. See `The Groundhog series of screencasts
+ <http://static.repoze.org/casts/videotags.html>`_ if you're interested in
doing so.
+
Objectives
==========
-- Define a route that extracts part of the URL into a Python dictionary
+- Define a route that extracts part of the URL into a Python dictionary.
+
+- Use that dictionary data in a view.
-- Use that dictionary data in a view
Steps
=====
@@ -48,7 +51,7 @@ Steps
.. code-block:: bash
$ cd ..; cp -r view_classes routing; cd routing
- $ $VENV/bin/python setup.py develop
+ $ $VENV/bin/pip install -e .
#. Our ``routing/tutorial/__init__.py`` needs a route with a replacement
pattern:
@@ -76,7 +79,9 @@ Steps
.. code-block:: bash
- $ $VENV/bin/nosetests tutorial
+ $ $VENV/bin/$VENV/bin/py.test tutorial/tests.py -q
+ ..
+ 2 passed in 0.39 seconds
#. Run your Pyramid application with:
@@ -86,6 +91,7 @@ Steps
#. Open http://localhost:6543/howdy/amy/smith in your browser.
+
Analysis
========
@@ -95,27 +101,24 @@ In ``__init__.py`` we see an important change in our route declaration:
config.add_route('hello', '/howdy/{first}/{last}')
-With this we tell the :term:`configurator` that our URL has
-a "replacement pattern". With this, URLs such as ``/howdy/amy/smith``
-will assign ``amy`` to ``first`` and ``smith`` to ``last``. We can then
-use this data in our view:
+With this we tell the :term:`configurator` that our URL has a "replacement
+pattern". With this, URLs such as ``/howdy/amy/smith`` will assign ``amy`` to
+``first`` and ``smith`` to ``last``. We can then use this data in our view:
.. code-block:: python
self.request.matchdict['first']
self.request.matchdict['last']
-``request.matchdict`` contains values from the URL that match the
-"replacement patterns" (the curly braces) in the route declaration.
-This information can then be used anywhere in Pyramid that has access
-to the request.
+``request.matchdict`` contains values from the URL that match the "replacement
+patterns" (the curly braces) in the route declaration. This information can
+then be used anywhere in Pyramid that has access to the request.
-Extra Credit
+Extra credit
============
-#. What happens if you to go the URL
- http://localhost:6543/howdy? Is this the result that you
- expected?
+#. What happens if you to go the URL http://localhost:6543/howdy? Is this the
+ result that you expected?
-.. seealso:: `Weird Stuff You Can Do With URL
- Dispatch <http://www.plope.com/weird_pyramid_urldispatch>`_
+.. seealso:: `Weird Stuff You Can Do With URL Dispatch
+ <http://www.plope.com/weird_pyramid_urldispatch>`_