From 855fe374108779e82530da74f1c0fd21ab9033b3 Mon Sep 17 00:00:00 2001 From: Charlie Choiniere Date: Fri, 17 Apr 2015 07:12:11 -0400 Subject: Added support for a prefixed base url to not contain a trailing slash --- docs/narr/urldispatch.rst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'docs/narr/urldispatch.rst') diff --git a/docs/narr/urldispatch.rst b/docs/narr/urldispatch.rst index 87a962a9a..f2a94341d 100644 --- a/docs/narr/urldispatch.rst +++ b/docs/narr/urldispatch.rst @@ -964,6 +964,24 @@ then only match if the URL path is ``/users/show``, and when the :meth:`pyramid.request.Request.route_url` function is called with the route name ``show_users``, it will generate a URL with that same path. +To create a prefixed route that matches requests to the ``route_prefix`` +without a trailing slash set the route ``pattern`` to an empty string. + +.. code-block:: python + :linenos: + + from pyramid.config import Configurator + + def users_include(config): + config.add_route('show_users', '') + + def main(global_config, **settings): + config = Configurator() + config.include(users_include, route_prefix='/users') + +The above configuration will match ``/users`` instead of ``/users/`` if a slash +had been supplied to the :meth:`pyramid.config.Configurator.add_route` function. + Route prefixes are recursive, so if a callable executed via an include itself turns around and includes another callable, the second-level route prefix will be prepended with the first: -- cgit v1.2.3 From dff0798e352d0afeeec2058200ac983692b606c2 Mon Sep 17 00:00:00 2001 From: Michael Merickel Date: Sun, 11 Nov 2018 22:39:52 -0600 Subject: use inherit_slash=True on add_route to opt-in to no trailing slash --- docs/narr/urldispatch.rst | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'docs/narr/urldispatch.rst') diff --git a/docs/narr/urldispatch.rst b/docs/narr/urldispatch.rst index 701326fab..3b737b46d 100644 --- a/docs/narr/urldispatch.rst +++ b/docs/narr/urldispatch.rst @@ -971,7 +971,7 @@ application from small and potentially reusable components. The :meth:`pyramid.config.Configurator.include` method accepts an argument named ``route_prefix`` which can be useful to authors of URL-dispatch-based applications. If ``route_prefix`` is supplied to the include method, it must -be a string. This string represents a route prefix that will be prepended to +be a string. This string represents a :term:`route prefix` that will be prepended to all route patterns added by the *included* configuration. Any calls to :meth:`pyramid.config.Configurator.add_route` within the included callable will have their pattern prefixed with the value of ``route_prefix``. This can be @@ -998,8 +998,7 @@ then only match if the URL path is ``/users/show``, and when the :meth:`pyramid.request.Request.route_url` function is called with the route name ``show_users``, it will generate a URL with that same path. -To create a prefixed route that matches requests to the ``route_prefix`` -without a trailing slash set the route ``pattern`` to an empty string. +To create a route that matches requests to the ``route_prefix`` without a trailing slash, pass ``inherit_slash=True`` to the call to ``add_route``. .. code-block:: python :linenos: @@ -1007,14 +1006,13 @@ without a trailing slash set the route ``pattern`` to an empty string. from pyramid.config import Configurator def users_include(config): - config.add_route('show_users', '') + config.add_route('show_users', '', inherit_slash=True) def main(global_config, **settings): config = Configurator() config.include(users_include, route_prefix='/users') -The above configuration will match ``/users`` instead of ``/users/`` if a slash -had been supplied to the :meth:`pyramid.config.Configurator.add_route` function. +The above configuration will match ``/users`` instead of ``/users/``. Route prefixes are recursive, so if a callable executed via an include itself turns around and includes another callable, the second-level route prefix will -- cgit v1.2.3