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


Python MultiDict.from_fieldstorage方法代码示例

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


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

示例1: DELETE

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import from_fieldstorage [as 别名]
    def DELETE(self):
        if self.method != 'DELETE':
            return NoVars('Not a DELETE request')

        content_type = self.content_type
        if content_type in (
                'application/x-www-form-urlencoded',
                'multipart/form-data'):

            self._check_charset()
            if self.is_body_seekable:
                self.body_file_raw.seek(0)
            fs_environ = self.environ.copy()

            # FieldStorage assumes a missing CONTENT_LENGTH, but a
            # default of 0 is better:
            fs_environ.setdefault('CONTENT_LENGTH', '0')
            fs_environ['QUERY_STRING'] = ''

            fs = FieldStorage(
                fp=self.body_file,
                environ=fs_environ,
                keep_blank_values=True)
            delete_values = MultiDict.from_fieldstorage(fs)

            ctype = self._content_type_raw or 'application/x-www-form-urlencoded'
            f = FakeCGIBody(delete_values, ctype)
            self.body_file = BufferedReader(f)
            return delete_values

        else:
            data = parse_qsl_text(self.environ.get('QUERY_STRING', ''))
            return MultiDict(data)
开发者ID:hugobranquinho,项目名称:ines,代码行数:35,代码来源:request.py

示例2: test_from_fieldstorage_with_quoted_printable_encoding

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import from_fieldstorage [as 别名]
    def test_from_fieldstorage_with_quoted_printable_encoding(self):
        from cgi import FieldStorage
        from webob.request import BaseRequest
        from webob.multidict import MultiDict

        multipart_type = "multipart/form-data; boundary=foobar"
        from io import BytesIO

        body = (
            b"--foobar\r\n"
            b'Content-Disposition: form-data; name="title"\r\n'
            b'Content-type: text/plain; charset="ISO-2022-JP"\r\n'
            b"Content-Transfer-Encoding: quoted-printable\r\n"
            b"\r\n"
            b"=1B$B$3$s$K$A$O=1B(B"
            b"\r\n"
            b"--foobar--"
        )
        multipart_body = BytesIO(body)
        environ = BaseRequest.blank("/").environ
        environ.update(CONTENT_TYPE=multipart_type)
        environ.update(REQUEST_METHOD="POST")
        environ.update(CONTENT_LENGTH=len(body))
        fs = FieldStorage(multipart_body, environ=environ)
        vars = MultiDict.from_fieldstorage(fs)
        self.assertEqual(vars["title"].encode("utf8"), text_("こんにちは", "utf8").encode("utf8"))
开发者ID:B-Rich,项目名称:webob,代码行数:28,代码来源:test_multidict.py

示例3: _str_POST

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import from_fieldstorage [as 别名]
 def _str_POST(self):
     env = self.environ
     if self.method not in ("POST", "PUT"):
         return NoVars("Not a form request")
     if "webob._parsed_post_vars" in env:
         vars, body_file = env["webob._parsed_post_vars"]
         if body_file is self.body_file_raw:
             return vars
     content_type = self.content_type
     if (self.method == "PUT" and not content_type) or content_type not in (
         "",
         "application/x-www-form-urlencoded",
         "multipart/form-data",
     ):
         # Not an HTML form submission
         return NoVars("Not an HTML form submission (Content-Type: %s)" % content_type)
     if self.is_body_seekable:
         self.body_file.seek(0)
     fs_environ = env.copy()
     # FieldStorage assumes a missing CONTENT_LENGTH, but a
     # default of 0 is better:
     fs_environ.setdefault("CONTENT_LENGTH", "0")
     fs_environ["QUERY_STRING"] = ""
     fs = cgi.FieldStorage(fp=self.body_file, environ=fs_environ, keep_blank_values=True)
     vars = MultiDict.from_fieldstorage(fs)
     # ctype = self.content_type or 'application/x-www-form-urlencoded'
     ctype = env.get("CONTENT_TYPE", "application/x-www-form-urlencoded")
     self.body_file = FakeCGIBody(vars, ctype)
     env["webob._parsed_post_vars"] = (vars, self.body_file_raw)
     return vars
开发者ID:Poorvak,项目名称:twitter_clone,代码行数:32,代码来源:request.py

示例4: __call__

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import from_fieldstorage [as 别名]
 def __call__(self, resource, request):
     # We can't use request.body_file because that's a socket that's
     # already had its data read off of.  IOW, if we use that directly,
     # we'll block here.
     field_storage = cgi.FieldStorage(
         fp=StringIO(request.body),
         # Yes, lie about the method so cgi will do the right thing.
         environ=dict(REQUEST_METHOD='POST'),
         keep_blank_values=True)
     request.PATCH = MultiDict.from_fieldstorage(field_storage)
     return self.func(resource, request)
开发者ID:aregee,项目名称:Mailman,代码行数:13,代码来源:helpers.py

示例5: _load_post_data

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import from_fieldstorage [as 别名]
 def _load_post_data(self):
     content_type = self.request.content_type
     if content_type == 'application/json':
         self.data = simplejson.loads(self.request.body)
     elif content_type == 'application/x-www-form-urlencoded':
         # LOOK INTO THIS
         fs = cgi.FieldStorage(fp=self.request.body_file,
                               environ=self.request.environ.copy(),
                               keep_blank_values=True)
         self.data = MultiDict.from_fieldstorage(fs) 
     else:
         raise "Unsupported content type: %s" % content_type
开发者ID:jakobadam,项目名称:wlw-thesis,代码行数:14,代码来源:restcontroller.py

示例6: POST

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import from_fieldstorage [as 别名]
    def POST(self):
        """
        A MultiDict containing all the variables from a form
        request. An empty dict-like object for non-form
        requests.

        Form requests are typically POST requests, however PUT requests
        with an appropriate Content-Type are also supported.

        All keys and values are unicode.
        """
        env = self.environ
        if self.method not in ('POST', 'PUT'):
            return NoVars('Not a form request')
        if 'webob._parsed_post_vars' in env:
            vars, body_file = env['webob._parsed_post_vars']
            if body_file is self.body_file_raw:
                return vars
        content_type = self.content_type
        if ((self.method == 'PUT' and not content_type)
            or content_type not in
                ('', 'application/x-www-form-urlencoded',
                 'multipart/form-data')
        ):
            # Not an HTML form submission
            return NoVars('Not an HTML form submission (Content-Type: %s)'
                          % content_type)
        if self.is_body_seekable:
            self.body_file_raw.seek(0)
        fs_environ = env.copy()
        # FieldStorage assumes a missing CONTENT_LENGTH, but a
        # default of 0 is better:
        fs_environ.setdefault('CONTENT_LENGTH', '0')
        fs_environ['QUERY_STRING'] = ''
        fs = cgi.FieldStorage(fp=self.body_file,
                              environ=fs_environ,
                              keep_blank_values=True)
        vars = MultiDict.from_fieldstorage(fs)
        #ctype = self.content_type or 'application/x-www-form-urlencoded'
        ctype = env.get('CONTENT_TYPE', 'application/x-www-form-urlencoded')
        self.body_file = io.BufferedReader(FakeCGIBody(vars, ctype))
        vars = UnicodeMultiDict(vars, encoding=self.charset,
                                errors=self.unicode_errors)
        env['webob._parsed_post_vars'] = (vars, self.body_file_raw)
        return vars
开发者ID:noahgift,项目名称:Adapt,代码行数:47,代码来源:request.py

示例7: str_POST

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import from_fieldstorage [as 别名]
    def str_POST(self):
        """
        Return a MultiDict containing all the variables from a form
        request. Returns an empty dict-like object for non-form
        requests.

        Form requests are typically POST requests, however PUT requests
        with an appropriate Content-Type are also supported.
        """
        env = self.environ
        if self.method not in ('POST', 'PUT'):
            return NoVars('Not a form request')
        if 'webob._parsed_post_vars' in env:
            vars, body_file = env['webob._parsed_post_vars']
            if body_file is self.body_file:
                return vars
        # Paste compatibility:
        if 'paste.parsed_formvars' in env:
            # from paste.request.parse_formvars
            vars, body_file = env['paste.parsed_formvars']
            if body_file is self.body_file:
                # FIXME: is it okay that this isn't *our* MultiDict?
                return vars
        content_type = self.content_type
        if ';' in content_type:
            content_type = content_type.split(';', 1)[0]
        if (self.method == 'PUT' and not content_type) or \
                content_type not in ('', 'application/x-www-form-urlencoded',
                                     'multipart/form-data'):
            # Not an HTML form submission
            return NoVars('Not an HTML form submission (Content-Type: %s)'
                          % content_type)
        fs_environ = env.copy()
        # FieldStorage assumes a default CONTENT_LENGTH of -1, but a
        # default of 0 is better:
        fs_environ.setdefault('CONTENT_LENGTH', '0')
        fs_environ['QUERY_STRING'] = ''
        fs = cgi.FieldStorage(fp=self.body_file,
                              environ=fs_environ,
                              keep_blank_values=True)
        vars = MultiDict.from_fieldstorage(fs)
        FakeCGIBody.update_environ(env, vars)
        env['webob._parsed_post_vars'] = (vars, self.body_file)
        return vars
开发者ID:daevaorn,项目名称:scraperasaservice.appspot.com,代码行数:46,代码来源:request.py

示例8: test_from_fieldstorage_with_charset

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import from_fieldstorage [as 别名]
 def test_from_fieldstorage_with_charset(self):
     from cgi import FieldStorage
     from webob.request import BaseRequest
     from webob.multidict import MultiDict
     multipart_type = 'multipart/form-data; boundary=foobar'
     from io import BytesIO
     body = (
         b'--foobar\r\n'
         b'Content-Disposition: form-data; name="title"\r\n'
         b'Content-type: text/plain; charset="ISO-2022-JP"\r\n'
         b'\r\n'
         b'\x1b$B$3$s$K$A$O\x1b(B'
         b'\r\n'
         b'--foobar--')
     multipart_body = BytesIO(body)
     environ = BaseRequest.blank('/').environ
     environ.update(CONTENT_TYPE=multipart_type)
     environ.update(REQUEST_METHOD='POST')
     environ.update(CONTENT_LENGTH=len(body))
     fs = FieldStorage(multipart_body, environ=environ)
     vars = MultiDict.from_fieldstorage(fs)
     self.assertEqual(vars['title'].encode('utf8'),
                      text_('こんにちは', 'utf8').encode('utf8'))
开发者ID:SmartTeleMax,项目名称:webob,代码行数:25,代码来源:test_multidict.py

示例9: test_from_fieldstorage_without_filename

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import from_fieldstorage [as 别名]
 def test_from_fieldstorage_without_filename(self):
     from webob.multidict import MultiDict
     d = MultiDict()
     fs = DummyFieldStorage('a', '1')
     self.assertEqual(d.from_fieldstorage(fs), MultiDict({'a':'1'}))
开发者ID:mpirnat,项目名称:webob,代码行数:7,代码来源:test_multidict.py

示例10: test_from_fieldstorage_without_filename

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import from_fieldstorage [as 别名]
    def test_from_fieldstorage_without_filename(self):
        from webob.multidict import MultiDict

        d = MultiDict()
        fs = DummyFieldStorage("a", "1")
        self.assertEqual(d.from_fieldstorage(fs), MultiDict({"a": "1"}))
开发者ID:B-Rich,项目名称:webob,代码行数:8,代码来源:test_multidict.py

示例11: set_variables

# 需要导入模块: from webob.multidict import MultiDict [as 别名]
# 或者: from webob.multidict.MultiDict import from_fieldstorage [as 别名]
 def set_variables(self, method):
     request = self.request
     fs = cgi.FieldStorage(fp=request.body_file,
                           environ=request.environ.copy(),
                           keep_blank_values=True)
     setattr(self.request, method, MultiDict.from_fieldstorage(fs))
开发者ID:joroca,项目名称:gecoscc-ui,代码行数:8,代码来源:__init__.py


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