File: multidict.txt

package info (click to toggle)
python-webob 1%3A1.8.5-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,664 kB
  • sloc: python: 21,344; makefile: 171
file content (34 lines) | stat: -rw-r--r-- 1,337 bytes parent folder | download | duplicates (4)
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: