Navigation

This module contains support functions used by other helpers, and functions for
URL manipulation. Most of these helpers predate the 0.6 reorganization; they
would have been put in other subpackages if they have been created later.

\*\*params are query parameters to add or replace. Each value may be a
string, a list of strings, or None. Passing a list generates multiple
values for the same parameter. Passing None deletes the corresponding
parameter if present.

Return the new URL.

Debug mode: if a pseudo-parameter _debug=True is passed,
return a tuple: [0] is the URL without query string or fragment,
[1] is the final query parameters as a dict, and [2] is the
fragment part of the original URL or the empty string.

The value is a single value if key appears just once. It is
a list of values when a key/value appears more than once in this
dictionary. This is similar to the kind of dictionary often
used to represent the variables in a web request.