当前位置: 首页>>代码示例>>Python>>正文


Python MultiDict.update方法代码示例

本文整理汇总了Python中webob.multidict.MultiDict.update方法的典型用法代码示例。如果您正苦于以下问题:Python MultiDict.update方法的具体用法?Python MultiDict.update怎么用?Python MultiDict.update使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在webob.multidict.MultiDict的用法示例。


在下文中一共展示了MultiDict.update方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import update [as 别名]
    def __init__(self, request, formdata=None, obj=None, prefix='', **kwargs):
        self.request = request

        if request.stash:
            if formdata is None:
                formdata = MultiDict()
            else:
                formdata = deepcopy(formdata)
            formdata.update(request.stash['post'])

        super(FloofForm, self).__init__(formdata=formdata, obj=obj,
                                        prefix=prefix, **kwargs)
开发者ID:krinndnz,项目名称:floof,代码行数:14,代码来源:forms.py

示例2: add_entry

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import update [as 别名]
    def add_entry(self):
        entry_id = self.request.matchdict.get("id_", 0)
        if entry_id:
            entry = DBSession.query(Entry).filter(Entry.id == entry_id).one()
            form_data = MultiDict({'title': entry.title, 'text': entry._text,
                                   'category': entry.category_name})
            form_data.update(self.request.session.get("edit_entry_%i_form" % entry.id, {}))
        else:
            entry = None
            form_data = MultiDict(self.request.session.get("add_entry_form", {}))
        form_data.update(self.request.POST)
        form = EntryForm(form_data)
        form.category.choices = [('', ' - None - ')] + [(name[0], name[0]) for name in get_categories()]
        preview = None
        if self.request.method == 'POST':
            if not form.validate():
                for field, errors in form.errors.items():
                    for error in errors:
                        self.request.session.flash('Field "%s" has the following error: "%s"' % (field, error))
                if entry:
                    self.request.session["edit_entry_%i_form" % entry.id] = form.data
                else:
                    self.request.session["add_entry_form"] = form.data
                return HTTPFound(location=self.request.route_url('add_entry'))

            if form.submit.data:
                if "category" in form.data and form.data["category"]:
                    category = DBSession.query(Category)\
                        .filter(Category.name == form.data["category"]).one()
                else:
                    category = None
                if not entry:
                    entry = Entry(form.data["title"], form.data["text"])
                    entry.category = category
                    if "add_entry_form" in self.request.session:
                        del self.request.session["add_entry_form"]
                    DBSession.add(entry)
                else:
                    if "edit_entry_%i_form" \
                            % entry.id in self.request.session:
                        del self.request.session["edit_entry_%i_form"
                                                 % entry.id]
                    entry._text = form.data["text"]
                    entry.title = form.data["title"]
                    entry.category = category
                DBSession.flush()
                get_categories.invalidate()
                get_recent_posts.invalidate()
                return HTTPFound(location=self.request.route_url('view_entry', id_=entry.id))
            if form.preview.data:
                preview = entry
        return {'form': form, 'preview': preview}
开发者ID:Javex,项目名称:miniblog,代码行数:54,代码来源:views.py

示例3: test_multidict

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import update [as 别名]
def test_multidict():
    d = MultiDict(a=1, b=2)
    assert d['a'] == 1
    assert d.getall('c') == []

    d.add('a', 2)
    assert d['a'] == 2
    assert d.getall('a') == [1, 2]

    d['b'] = 4
    assert d.getall('b') == [4]
    assert list(d.keys()) == ['a', 'a', 'b']
    assert list(d.items()) == [('a', 1), ('a', 2), ('b', 4)]
    assert d.mixed() == {'a': [1, 2], 'b': 4}

    # test getone

    # KeyError: "Multiple values match 'a': [1, 2]"
    with pytest.raises(KeyError):
        d.getone('a')

    assert d.getone('b') == 4
    # KeyError: "Key not found: 'g'"
    with pytest.raises(KeyError):
        d.getone('g')

    assert d.dict_of_lists() == {'a': [1, 2], 'b': [4]}
    assert 'b' in d
    assert 'e' not in d
    d.clear()
    assert 'b' not in d
    d['a'] = 4
    d.add('a', 5)
    e = d.copy()
    assert 'a' in e
    e.clear()
    e['f'] = 42
    d.update(e)
    assert d == MultiDict([('a', 4), ('a', 5), ('f', 42)])
    f = d.pop('a')
    assert f == 4
    assert d['a'] == 5

    assert d.pop('g', 42) == 42
    with pytest.raises(KeyError):
        d.pop('n')
    # TypeError: pop expected at most 2 arguments, got 3
    with pytest.raises(TypeError):
        d.pop(4, 2, 3)
    d.setdefault('g', []).append(4)
    assert d == MultiDict([('a', 5), ('f', 42), ('g', [4])])
开发者ID:adamchainz,项目名称:webob,代码行数:53,代码来源:test_misc.py

示例4: build_url

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import update [as 别名]
    def build_url(self, page=None, size=None, sort=None, facets=tuple(),
                  unselect_facets=tuple(), **kwargs):
        '''
        b/w compat
        '''
        query = MultiDict(request.params.items())
        query.update(kwargs)
        query["%s_page" % self.name] = page if page else 1
        query["%s_size" % self.name] = size if size else self.size
        query["%s_sort" % self.name] = sort if sort else self.selected_sort

        # sanitize the the query arguments
        query_items = ([(str(key), unicode(value).encode('utf-8')) for
                        (key, value) in query.items()])
        url_base = url.current(qualified=True)
        return url_base + "?" + urllib.urlencode(query_items)
开发者ID:AnonOnWarpath,项目名称:adhocracy,代码行数:18,代码来源:pager.py

示例5: test_multidict

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import update [as 别名]
def test_multidict():
    d = MultiDict(a=1, b=2)
    eq(d['a'], 1)
    eq(d.getall('c'), [])

    d.add('a', 2)
    eq(d['a'], 2)
    eq(d.getall('a'), [1, 2])

    d['b'] = 4
    eq(d.getall('b'), [4])
    eq(list(d.keys()), ['a', 'a', 'b'])
    eq(list(d.items()), [('a', 1), ('a', 2), ('b', 4)])
    eq(d.mixed(), {'a': [1, 2], 'b': 4})

    # test getone

    # KeyError: "Multiple values match 'a': [1, 2]"
    assert_raises(KeyError, d.getone, 'a')
    eq(d.getone('b'), 4)
    # KeyError: "Key not found: 'g'"
    assert_raises(KeyError, d.getone, 'g')

    eq(d.dict_of_lists(), {'a': [1, 2], 'b': [4]})
    assert 'b' in d
    assert 'e' not in d
    d.clear()
    assert 'b' not in d
    d['a'] = 4
    d.add('a', 5)
    e = d.copy()
    assert 'a' in e
    e.clear()
    e['f'] = 42
    d.update(e)
    eq(d, MultiDict([('a', 4), ('a', 5), ('f', 42)]))
    f = d.pop('a')
    eq(f, 4)
    eq(d['a'], 5)


    eq(d.pop('g', 42), 42)
    assert_raises(KeyError, d.pop, 'n')
    # TypeError: pop expected at most 2 arguments, got 3
    assert_raises(TypeError, d.pop, 4, 2, 3)
    d.setdefault('g', []).append(4)
    eq(d, MultiDict([('a', 5), ('f', 42), ('g', [4])]))
开发者ID:B-Rich,项目名称:webob,代码行数:49,代码来源:test_misc.py

示例6: build_url

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import update [as 别名]
    def build_url(self, page=None, size=None, sort=None, facets=tuple(),
                  unselect_facets=tuple(), **kwargs):
        '''
        b/w compat
        '''
        query = MultiDict(request.params.items())
        query.update(kwargs)
        query[self.page_param] = page if page else 1
        query[self.size_param] = size if size else self.size
        query[self.sort_param] = sort if sort else self.selected_sort

        # sanitize the the query arguments
        query_items = ([(str(key), unicode(value).encode('utf-8')) for
                        (key, value) in query.items()])
        url_base = url.current(qualified=True)
        protocol = config.get('adhocracy.protocol', 'http').strip()
        if ', ' in url_base:
            # hard coded fix for enquetebeteiligung.de
            url_base = '%s://%s' % (protocol, url_base.split(', ')[1])
        else:
            url_base = '%s://%s' % (protocol, url_base.split('://')[1])
        return url_base + "?" + urllib.urlencode(query_items)
开发者ID:aoeztuerk,项目名称:adhocracy,代码行数:24,代码来源:pager.py

示例7: parse_formvars

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import update [as 别名]
def parse_formvars(environ, include_get_vars=True):
    """Parses the request, returning a MultiDict of form variables.

    If ``include_get_vars`` is true then GET (query string) variables
    will also be folded into the MultiDict.

    All values should be strings, except for file uploads which are
    left as ``FieldStorage`` instances.

    If the request was not a normal form request (e.g., a POST with an
    XML body) then ``environ['wsgi.input']`` won't be read.
    """
    source = environ['wsgi.input']
    if 'paste.parsed_formvars' in environ:
        parsed, check_source = environ['paste.parsed_formvars']
        if check_source == source:
            if include_get_vars:
                parsed.update(parse_querystring(environ))
            return parsed
    # @@: Shouldn't bother FieldStorage parsing during GET/HEAD and
    # fake_out_cgi requests
    type = environ.get('CONTENT_TYPE', '').lower()
    if ';' in type:
        type = type.split(';', 1)[0]
    fake_out_cgi = type not in ('', 'application/x-www-form-urlencoded',
                                'multipart/form-data')
    # FieldStorage assumes a default CONTENT_LENGTH of -1, but a
    # default of 0 is better:
    if not environ.get('CONTENT_LENGTH'):
        environ['CONTENT_LENGTH'] = '0'
    # Prevent FieldStorage from parsing QUERY_STRING during GET/HEAD
    # requests
    old_query_string = environ.get('QUERY_STRING', '')
    environ['QUERY_STRING'] = ''
    if fake_out_cgi:
        input = StringIO('')
        old_content_type = environ.get('CONTENT_TYPE')
        old_content_length = environ.get('CONTENT_LENGTH')
        environ['CONTENT_LENGTH'] = '0'
        environ['CONTENT_TYPE'] = ''
    else:
        input = environ['wsgi.input']
    fs = cgi.FieldStorage(fp=input,
                          environ=environ,
                          keep_blank_values=1)
    environ['QUERY_STRING'] = old_query_string
    if fake_out_cgi:
        environ['CONTENT_TYPE'] = old_content_type
        environ['CONTENT_LENGTH'] = old_content_length
    formvars = MultiDict()
    if isinstance(fs.value, list):
        for name in fs.keys():
            values = fs[name]
            if not isinstance(values, list):
                values = [values]
            for value in values:
                if not value.filename:
                    value = value.value
                formvars.add(name, value)
    environ['paste.parsed_formvars'] = (formvars, source)
    if include_get_vars:
        formvars.update(parse_querystring(environ))
    return formvars
开发者ID:gjhiggins,项目名称:weberror,代码行数:65,代码来源:request.py


注:本文中的webob.multidict.MultiDict.update方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。