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


Python MultiDict.add方法代码示例

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


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

示例1: strip_sensitive_data_from_multidict

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
def strip_sensitive_data_from_multidict(multidict):
    """
    Creates a new MultiDict with sensitive data blotted out for logging purposes.  Tightly coupled to the Flask
    logger and werkzeug.datastructures classes, we might want to make this more generic in the future.
    :param multidict: Multidict
    :return: Dictionary of keys and values (potentially stripped)
    """
    from werkzeug.datastructures import MultiDict

    # A bit overkill for now, since we have so few exceptions, and I'd hate for something to actually sneak through
    sensitive_regex = [
        r'.*account.*',
        r'.*bank.*',
        r'.*password.*',
        r'.*routing.*'
    ]

    stripped_multidict = MultiDict()

    # We perform an iterlists so that we get duplicates of the same key.
    for key, value in multidict.iterlists():
        for regex in sensitive_regex:
            match = re.match(regex, key, re.DOTALL | re.IGNORECASE)
            if match:
                value = u'************'
                break

        stripped_multidict.add(key, value)

    return stripped_multidict
开发者ID:Catalant,项目名称:ct-flask-api-breakout,代码行数:32,代码来源:string_utils.py

示例2: inspire_search_factory

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
def inspire_search_factory(self, search):
    """Parse query using Inspire-Query-Parser.

    :param self: REST view.
    :param search: Elastic search DSL search instance.
    :returns: Tuple with search instance and URL arguments.
    """
    query_string = request.values.get('q', '')
    urlkwargs = MultiDict()

    try:
        search = search.query_from_iq(query_string)
    except SyntaxError:
        current_app.logger.debug(
            "Failed parsing query: {0}".format(
                request.values.get('q', '')),
            exc_info=True)
        raise InvalidQueryRESTError()

    search_index = search._index[0]
    search, urlkwargs = inspire_filter_factory(search, urlkwargs, search_index)
    search, sortkwargs = default_sorter_factory(search, search_index)
    search = select_source(search)

    urlkwargs.add('q', query_string)
    current_app.logger.debug(json.dumps(search.to_dict(), indent=4))

    return search, urlkwargs
开发者ID:harunurhan,项目名称:inspire-next,代码行数:30,代码来源:search_factory.py

示例3: get_url

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
 def get_url(self, **kwargs):
     """Returns the URL for the viz"""
     d = self.orig_form_data.copy()
     if 'json' in d:
         del d['json']
     if 'action' in d:
         del d['action']
     d.update(kwargs)
     # Remove unchecked checkboxes because HTML is weird like that
     od = MultiDict()
     for key in sorted(d.keys()):
         if d[key] is False:
             del d[key]
         else:
             if isinstance(d, MultiDict):
                 v = d.getlist(key)
             else:
                 v = d.get(key)
             if not isinstance(v, list):
                 v = [v]
             for item in sorted(v):
                 od.add(key, item)
     href = Href(
         '/caravel/explore/{self.datasource.type}/'
         '{self.datasource.id}/'.format(**locals()))
     return href(od)
开发者ID:pirace,项目名称:caravel,代码行数:28,代码来源:viz.py

示例4: test_meeting_multicheckbox_field_non_editable

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
def test_meeting_multicheckbox_field_non_editable(app, user):
    category = MeetingCategoryFactory(meeting__owner=user.staff)
    meeting = category.meeting
    data = MultiDict(ParticipantFactory.attributes())
    data['category_id'] = category.id
    field_data = MultiDict(CustomFieldFactory.attributes())
    field_data['label-english'] = field_data['label'].english
    field_data['hint-english'] = field_data['hint'].english
    field_data['field_type'] = CustomField.MULTI_CHECKBOX
    field_data.setlist('custom_field_choices',
                       ['first_choice', 'second_choice', 'third_choice'])

    client = app.test_client()
    with app.test_request_context():
        with client.session_transaction() as sess:
            sess['user_id'] = user.id
        add_custom_fields_for_meeting(meeting)
        add_multicheckbox_field(client, meeting, field_data)
        field = (CustomField.query
                 .filter_by(slug=field_data['label-english'])
                 .one())

        populate_participant_form(meeting, data)
        data.setlist(field.slug, ['first_choice', 'third_choice'])
        resp = client.post(url_for('meetings.participant_edit',
                                   meeting_id=meeting.id), data=data)
        assert resp.status_code == 302
        assert Participant.query.current_meeting().participants().first()
        assert CustomFieldValue.query.count() == 2
        assert field.choices.count() == 3

        field_data.add('custom_field_choices', 'fourth_choice')
        add_multicheckbox_field(client, meeting, field_data, field.id,
                                302)
        assert field.choices.count() == 3
开发者ID:razvanch,项目名称:meetings-registration-tool,代码行数:37,代码来源:test_meeting_custom_fields.py

示例5: reset_password

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
def reset_password():
    if current_user.is_authenticated():
        logout_user()
    form = ResetPasswordForm()
    if form.is_submitted():
        if form.validate_on_submit():
            try:
                user = auth_service.user_by_username_or_email(form.email.data)
            except NoResultFound:
                form.email.errors = ['User with this email doesn\'t exist.']
            else:
                if user.active:
                    profile = profiles_service.profile(user.id)
                    auth_service.send_password_reset_mail(profile)
                    flash('We sent a letter that will allow you to change your password. Please check your mailbox.', 'success')
                    return redirect(url_for('auth.login'))
                else:
                    form.email.errors = ['This email address is not confirmed. Please, confirm it first.']
    else:
        initial = MultiDict()
        email = request.values.get('email')
        if email:
            initial.add('email', email)
        form = ResetPasswordForm(formdata=initial)
    return render_template('auth/reset_password.html',
        reset_password_form=form)
开发者ID:Marboni,项目名称:databasy-facade,代码行数:28,代码来源:views.py

示例6: parse_args

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
def parse_args(raw_args):
    args = MultiDict()
    for (arg_name, arg_outer_values) in raw_args.iterlists():
        for arg_inner_values in arg_outer_values:
            for arg_value in arg_inner_values.split(','):
                args.add(arg_name, arg_value.strip())
    return args
开发者ID:bwinton,项目名称:user-advocacy,代码行数:9,代码来源:views.py

示例7: test_should_strip_page_from_multidict

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
def test_should_strip_page_from_multidict():
    params = MultiDict()
    params.add("this", "that")
    params.add("page", 100)

    parsed = search_helpers.query_args_for_pagination(params)
    assert_equal(parsed['this'], 'that')
    assert_false('page' in parsed)
开发者ID:mtekel,项目名称:digitalmarketplace-buyer-frontend,代码行数:10,代码来源:test_search_helpers.py

示例8: get_available_products

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
def get_available_products():
    '''
    Search with given arguments,
    but also limit the minimum amount to at least 1.
    '''
    args = MultiDict(request.args)
    args.add('minamount', 1)
    return dumps(backend.get_products(args))
开发者ID:aisopuro,项目名称:restservice,代码行数:10,代码来源:server.py

示例9: get_by_category

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
def get_by_category(category):
    '''
    Search with given arguments,
    but also limit the search to the given category.
    '''
    args = MultiDict(request.args)
    args.add('category', category)
    return dumps(backend.get_products(args))
开发者ID:aisopuro,项目名称:restservice,代码行数:10,代码来源:server.py

示例10: to_wsgi_environment

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
def to_wsgi_environment(headers: list, method: str, path: str,
                        http_version: str, body: BytesIO = None) -> MultiDict:
    """
    Produces a new WSGI environment from a set of data that is passed in.

    This will return a dictionary that is directly compatible with Werkzeug's Request wrapper.

    .. code-block:: python

        d = to_wsgi_environment([("Host", "127.0.0.1"), "GET", "/", None)
        request = werkzeug.wrappers.Request(d)

    :param headers: The headers of the HTTP request.
    :param method: The HTTP method of this request, e.g GET or POST.
    :param path: The HTTP path to get, in raw form.
        This should NOT be urldecoded, as the path is manually decoded.

    :param http_version: The HTTP version to use.
    :param body: A :class:`BytesIO` representing the body wrapper for this dict, or None if there \ 
        is no request body.

    :return: A new dict containing the fake WSGI environment.
    """
    if isinstance(headers, dict):
        headers = headers.items()

    # urlsplit the path
    sp_path = urlsplit(path)

    if body is None:
        body = BytesIO()

    environ = MultiDict({
        # Basic items
        "PATH_INFO": sp_path.path,
        "QUERY_STRING": sp_path.query,
        "SERVER_PROTOCOL": "HTTP/%s" % http_version,
        "REQUEST_METHOD": method,
        # WSGI protocol things
        "wsgi.errors": sys.stderr,
        "wsgi.url_scheme": "http",
        "wsgi.input": body,
        "wsgi.input_terminated": True,
        "wsgi.async": True,
        "wsgi.multithread": True,  # technically false sometimes, but oh well
        "wsgi.multiprocess": False,
        "wsgi.run_once": False
    })
    environ["wsgi.version"] = (1, 0)

    for header, value in headers:
        name = header.upper().replace("-", "_")
        if header not in ("Content-Type", "Content-Length"):
            name = "HTTP_{}".format(name)

        environ.add(name, value)

    return environ
开发者ID:SunDwarf,项目名称:Kyoukai,代码行数:60,代码来源:wsgi.py

示例11: transformFile

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
def transformFile(files):
    result= MultiDict([])
    for f in files:
        file = files[f]
        unique_filename = str(uuid.uuid4())+secure_filename(file.filename)
        filepath=os.path.join(os.getcwd(), unique_filename)
        file.save(filepath)
        result.add(f, filepath)
    return result
开发者ID:apache,项目名称:incubator-singa,代码行数:11,代码来源:agent.py

示例12: get_post_multidict

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
def get_post_multidict():
    data = MultiDict()
    for k, v in request_data().items():
        if isinstance(v, (list, set, tuple)):
            for iv in v:
                data.add(k, iv)
        else:
            data.add(k, v)
    return data
开发者ID:CodeForAfrica,项目名称:aleph,代码行数:11,代码来源:graph_api.py

示例13: _normalize_networks

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
def _normalize_networks(provider, networks):
    _provider = {"provider": provider, "networks": []}
    for netw, stats in groupby(networks, lambda r: r["network_code"]):
        _network = MultiDict()

        for s in stats:
            _network.add(netw, {"type": s["type"], "count": s["count"]})

        _provider["networks"].append({
            "network": netw, "stats": _network.getlist(netw)
            })
    return _provider
开发者ID:azie-ginanjar,项目名称:procurement_backend,代码行数:14,代码来源:__init__.py

示例14: build_query_params

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
def build_query_params(keywords=None, service_types=None, lot=None, page=None):
    query_params = MultiDict()
    if keywords:
        query_params["q"] = keywords
    if service_types:
        for service_type in service_types:
            query_params.add("filter_serviceTypes", service_type)
    if lot:
        query_params["filter_lot"] = lot
    if page:
        query_params["page"] = page
    return query_params
开发者ID:AusDTO,项目名称:dto-digitalmarketplace-search-api,代码行数:14,代码来源:test_query_builder.py

示例15: process_python

# 需要导入模块: from werkzeug.datastructures import MultiDict [as 别名]
# 或者: from werkzeug.datastructures.MultiDict import add [as 别名]
    def process_python(self, values):
        """Turn raw python values back to strings"""
        values = self._to_strings(values)
        results = MultiDict()
        for k, v in values.iteritems():
            if k in self.fields:
                if self.fields[k].is_dict and isinstance(v, dict):
                    for key, value in v.items():
                        results.add('{}[{}]'.format(k, key), self.fields[k].python_to_string(value))
                else:
                    results.add(k, self.fields[k].python_to_string(v))

        return to_mixed(results)
开发者ID:bmorgan21,项目名称:python-formval,代码行数:15,代码来源:base.py


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