1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
:mod:`webob.multidict` -- multi-value dictionary object
=======================================================
multidict
---------
Several parts of WebOb use a "multidict", which is a dictionary where a key can
have multiple values. The quintessential example is a query string like
``?pref=red&pref=blue``. The ``pref`` variable has two values, ``red`` and
``blue``.
In a multidict, when you do ``request.GET['pref']``, you'll get back only
``'blue'`` (the last value of ``pref``). Sometimes returning a string and
other times returning a list is a cause of frequent exceptions. If you want
*all* the values back, use ``request.GET.getall('pref')``. If you want to be
sure there is *one and only one* value, use ``request.GET.getone('pref')``,
which will raise an exception if there is zero or more than one value for
``pref``.
When you use operations like ``request.GET.items()``, you'll get back something
like ``[('pref', 'red'), ('pref', 'blue')]``. All the key/value pairs will
show up. Similarly ``request.GET.keys()`` returns ``['pref', 'pref']``.
Multidict is a view on a list of tuples; all the keys are ordered, and all the
values are ordered.
.. automodule:: webob.multidict
.. autoclass:: MultiDict
:members:
:inherited-members:
.. autoclass:: NestedMultiDict
:members:
.. autoclass:: NoVars
:members:
|