• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python httputil.parse_body_arguments函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中tornado.httputil.parse_body_arguments函数的典型用法代码示例。如果您正苦于以下问题:Python parse_body_arguments函数的具体用法?Python parse_body_arguments怎么用?Python parse_body_arguments使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



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

示例1: __init__

    def __init__(self, data):
        method, url, version, headers, self._body = msgpack.unpackb(data)
        self._meta = dict()
        self._headers = dict(headers)
        self._meta['method'] = method
        self._meta['version'] = version
        self._meta['host'] = self._headers.get('Host') or self._headers.get('host', '')
        self._meta['remote_addr'] = self._headers.get('X-Real-IP') or self._headers.get('X-Forwarded-For', '')
        self._meta['query_string'] = urlparse.urlparse(url).query
        self._meta['cookies'] = dict()
        if 'Cookie' in self._headers:
            try:
                cookies = Cookie.BaseCookie()
                cookies.load(escape.native_str(self._headers['Cookie']))
                self._meta['cookies'] = dict((key, name.value) for key, name in cookies.iteritems())
            except:
                pass

        tmp = urlparse.parse_qs(urlparse.urlparse(url).query)
        self._request = dict((k, v[0]) for k, v in tmp.iteritems() if len(v) > 0)
        self._files = None
        args = dict()
        files = dict()
        parse_body_arguments(self._headers.get("Content-Type", ""), self._body, args, files)
        self._request.update(dict((k, v[0]) for k, v in args.iteritems() if len(v) > 0))
        self._files = files
开发者ID:kod3r,项目名称:cocaine-framework-python,代码行数:26,代码来源:http.py


示例2: __init__

    def __init__(self, data):
        method, url, version, headers, self._body = msgpack.unpackb(data)
        self._meta = dict()
        self._headers = dict(headers)
        self._meta["method"] = method
        self._meta["version"] = version
        self._meta["host"] = self._headers.get("Host") or self._headers.get("host", "")
        self._meta["remote_addr"] = self._headers.get("X-Real-IP") or self._headers.get("X-Forwarded-For", "")
        self._meta["query_string"] = urlparse.urlparse(url).query
        self._meta["cookies"] = dict()
        if "Cookie" in self._headers:
            try:
                cookies = Cookie.BaseCookie()
                cookies.load(escape.native_str(self._headers["Cookie"]))
                self._meta["cookies"] = dict((key, name.value) for key, name in cookies.iteritems())
            except:
                pass

        tmp = urlparse.parse_qs(urlparse.urlparse(url).query)
        self._request = dict((k, v[0]) for k, v in tmp.iteritems() if len(v) > 0)
        self._files = None
        args = dict()
        files = dict()
        parse_body_arguments(self._headers.get("Content-Type", ""), self._body, args, files)
        self._request.update(dict((k, v[0]) for k, v in args.iteritems() if len(v) > 0))
        self._files = files
开发者ID:nobodyisme,项目名称:cocaine-framework-python,代码行数:26,代码来源:http.py


示例3: _on_request_body

 def _on_request_body(self, data):
     self._request.body = data
     if self._request.method in ("POST", "PATCH", "PUT"):
         httputil.parse_body_arguments(
             self._request.headers.get("Content-Type", ""), data,
             self._request.arguments, self._request.files)
     self.request_callback(self._request)
开发者ID:sean-chen,项目名称:tornado,代码行数:7,代码来源:httpserver.py


示例4: _on_request_body

    def _on_request_body(self, data):
        self._request.body = data
        if self._request.method in ("POST", "PATCH", "PUT"):
            httputil.parse_body_arguments(
                self._request.headers.get("Content-Type", ""), data,
                self._request.body_arguments, self._request.files)

            for k, v in self._request.body_arguments.items():
                self._request.arguments.setdefault(k, []).extend(v)
        self.request_callback(self._request)
开发者ID:ribeiroit,项目名称:tornado,代码行数:10,代码来源:httpserver.py


示例5: get_image_data

        def get_image_data():
            content_type = self.request.headers.get('content-type')
            body = b'{}'.format(self.request.body)

            parse_body_arguments(content_type, body, post_data, files)

            file_data = files['profile-image'][0].get('body')
            original_file_name = files['profile-image'][0].get('filename')

            extension = original_file_name.split('.')[-1]
            file_name = u'{}.{}'.format(slugify(current_user_id), extension)

            return file_data, file_name
开发者ID:entropiae,项目名称:urlist,代码行数:13,代码来源:api.py


示例6: handle_request_body

    def handle_request_body(self, method, headers, body):

        files = {}
        arguments = {}

        if method in ('POST', 'PATCH', 'PUT'):
            _log.debug('Parsing message body')
            httputil.parse_body_arguments(
                headers.get('Content-Type', ''),
                body,
                arguments,
                files)

        return arguments, files
开发者ID:h4ck3rm1k3,项目名称:xudd,代码行数:14,代码来源:http.py


示例7: __init__

 def __init__(self, data):
     method, url, version, headers, self._body = msgpack_unpackb(data)
     self._headers = HTTPHeaders(headers)
     self._meta = {
         'method': method,
         'version': version,
         'host': self._headers.get('Host', ''),
         'remote_addr': self._headers.get('X-Real-IP') or self._headers.get('X-Forwarded-For', ''),
         'query_string': urlparse.urlparse(url).query,
         'cookies': dict(),
         'parsed_cookies': http_parse_cookies(self._headers),
     }
     args = urlparse.parse_qs(urlparse.urlparse(url).query)
     self._files = dict()
     parse_body_arguments(self._headers.get("Content-Type", ""), self._body, args, self._files)
     self._request = dict_list_to_single(args)
开发者ID:Alukardd,项目名称:cocaine-framework-python,代码行数:16,代码来源:http_dec.py


示例8: __init__

    def __init__(self, environ):
        """Parses the given WSGI environment to construct the request."""
        self.method = environ["REQUEST_METHOD"]
        self.path = urllib_parse.quote(from_wsgi_str(environ.get("SCRIPT_NAME", "")))
        self.path += urllib_parse.quote(from_wsgi_str(environ.get("PATH_INFO", "")))
        self.uri = self.path
        self.arguments = {}
        self.query_arguments = {}
        self.body_arguments = {}
        self.query = environ.get("QUERY_STRING", "")
        if self.query:
            self.uri += "?" + self.query
            self.arguments = parse_qs_bytes(native_str(self.query),
                                            keep_blank_values=True)
            self.query_arguments = copy.deepcopy(self.arguments)
        self.version = "HTTP/1.1"
        self.headers = httputil.HTTPHeaders()
        if environ.get("CONTENT_TYPE"):
            self.headers["Content-Type"] = environ["CONTENT_TYPE"]
        if environ.get("CONTENT_LENGTH"):
            self.headers["Content-Length"] = environ["CONTENT_LENGTH"]
        for key in environ:
            if key.startswith("HTTP_"):
                self.headers[key[5:].replace("_", "-")] = environ[key]
        if self.headers.get("Content-Length"):
            self.body = environ["wsgi.input"].read(
                int(self.headers["Content-Length"]))
        else:
            self.body = ""
        self.protocol = environ["wsgi.url_scheme"]
        self.remote_ip = environ.get("REMOTE_ADDR", "")
        if environ.get("HTTP_HOST"):
            self.host = environ["HTTP_HOST"]
        else:
            self.host = environ["SERVER_NAME"]

        # Parse request body
        self.files = {}
        httputil.parse_body_arguments(self.headers.get("Content-Type", ""),
                                      self.body, self.body_arguments, self.files)

        for k, v in self.body_arguments.items():
            self.arguments.setdefault(k, []).extend(v)

        self._start_time = time.time()
        self._finish_time = None
开发者ID:Bart1983,项目名称:CouchPotatoServer,代码行数:46,代码来源:wsgi.py


示例9: post

    def post(self, dispatcher_id=None):
        form = {}
        parse_body_arguments('application/x-www-form-urlencoded',
                             self.request.body, form, {})

        _payload = form.get('payload', ['']).pop()
        action = form.get('action', ['']).pop()

        payload = json.loads(_payload)

        dispatcher = self.application.settings.get('dispatcher')

        resp = yield gen.Task(dispatcher.send_msg, action,
                                                   payload,
                                                   self.context())

        self.write(resp.payload)
        self.finish()
开发者ID:entropiae,项目名称:urlist,代码行数:18,代码来源:debug.py


示例10: __init__

    def __init__(self, handler, form_id = None):

        self._parmas = {}
        self._values = {}
        self._form_errors = {}
        self.form_id = form_id
        arguments = {}

        # re-parse qs, keep_blankvalues for formencode to validate
        # so formencode not_empty setting work.
        request = handler.request
        content_type = request.headers.get("Content-Type", "")
        files = {}
        parse_body_arguments(content_type,request.body,arguments,files)
        try:
            for key in files.keys():
                arguments[key] = files.get(key)
        except Exception, error:
            pass
开发者ID:tianyaqu,项目名称:quora-python,代码行数:19,代码来源:forms.py


示例11: handle_request_body

    def handle_request_body(self, message):
        options = message.body['options']

        files = {}
        arguments = {}

        if options['method'] in ('POST', 'PATCH', 'PUT'):
            _log.debug('Parsing message body')
            httputil.parse_body_arguments(
                options['headers'].get('Content-Type', ''),
                message.body['body'],
                arguments,
                files)

        message.reply(
            body={
                'arguments': arguments,
                'files': files
            })
开发者ID:h4ck3rm1k3,项目名称:xudd,代码行数:19,代码来源:server.py


示例12: post

	def post(self):
		self.set_status(202)
		user_data = {'username': '', 'password': ''}
		files = {}
		headers = {}
		util.parse_body_arguments(self.request.headers['Content-Type'], self.request.body, files, headers)

		for k in user_data.keys():
			if k not in files.keys():
				self.set_status(400, reason='incorrect data')
				print 'INF: incorrect request data'
				return
			user_data[k] = files[k][0]

		print "DEB: login username " + user_data['username']
		user_cn = MySQLConnector()
		user_cookie = user_cn.create_cookie(user_data)
		if user_cookie is None:
			self.set_status(401, reason='no such user-password pair') # unauthorized
			return

		self.write(json.dumps({'user_cookie': user_cookie}))
开发者ID:KseniyaYakil,项目名称:news_crawlers,代码行数:22,代码来源:session.py


示例13: _begin_request

    def _begin_request(self):
        """
        Actually start executing this request.
        """
        headers = self.m2req.headers

        self._request = HTTPRequest(connection=self,
            method=headers.get("METHOD"),
            uri=self.m2req.path,
            version=headers.get("VERSION"),
            headers=HTTPHeaders(headers),
            remote_ip=headers.get("x-forwarded-for"))

        if len(self.m2req.body) > 0:
            self._request.body = self.m2req.body
            if self._request.method in ("POST", "PATCH", "PUT"):
                parse_body_arguments(
                    self._request.headers.get("Content-Type", ""),
                    self._request.body,
                    self._request.arguments, self._request.files)

        if self.m2req.is_disconnect():
            self.finish()

        elif headers.get("x-mongrel2-upload-done", None):
            # there has been a file upload.
            expected = headers.get("x-mongrel2-upload-start", "BAD")
            upload = headers.get("x-mongrel2-upload-done", None)

            if expected == upload:
                self.request_callback(self._request)

        elif headers.get("x-mongrel2-upload-start", None):
            # this is just a notification that a file upload has started. Do
            # nothing for now!
            pass

        else:
            self.request_callback(self._request)
开发者ID:jagguli,项目名称:tornadotools,代码行数:39,代码来源:handler.py


示例14: test_make_mfd

    def test_make_mfd(self):
        args, files = {}, {}
        body, content_type = make_mfd(
            {
                'arg1': 'value1'
            },
            {
                'file0': [HTTPFile(filename='file0.rar', body='ARCHIVE', content_type='some/type\r\n\r\nBAD DATA')],
                'file1': [HTTPFile(filename='file1.png', body='CAT PICTURE', content_type=media_types.IMAGE_PNG)],
                'file2': [HTTPFile(filename='file2.txt', body='TEXT')],
                'file3': [
                    HTTPFile(filename=r'file3-"part1".unknown', body='BODY1'),
                    HTTPFile(filename=r'file3-\part2\.unknown', body='BODY2'),
                ],
            }
        )

        parse_body_arguments(to_unicode(content_type), body, args, files)

        self.assertEqual(args['arg1'], [b'value1'])

        self.assertEqual(files['file0'][0]['filename'], 'file0.rar')
        self.assertEqual(files['file0'][0]['body'], b'ARCHIVE')
        self.assertEqual(files['file0'][0]['content_type'], 'some/type    BAD DATA')

        self.assertEqual(files['file1'][0]['filename'], 'file1.png')
        self.assertEqual(files['file1'][0]['body'], b'CAT PICTURE')
        self.assertEqual(files['file1'][0]['content_type'], media_types.IMAGE_PNG)

        self.assertEqual(files['file2'][0]['filename'], 'file2.txt')
        self.assertEqual(files['file2'][0]['body'], b'TEXT')
        self.assertEqual(files['file2'][0]['content_type'], media_types.TEXT_PLAIN)

        self.assertEqual(files['file3'][0]['filename'], r'file3-"part1".unknown')
        self.assertEqual(files['file3'][0]['body'], b'BODY1')
        self.assertEqual(files['file3'][0]['content_type'], media_types.APPLICATION_OCTET_STREAM)
        self.assertEqual(files['file3'][1]['filename'], r'file3-\part2\.unknown')
        self.assertEqual(files['file3'][1]['body'], b'BODY2')
        self.assertEqual(files['file3'][1]['content_type'], media_types.APPLICATION_OCTET_STREAM)
开发者ID:hhru,项目名称:frontik,代码行数:39,代码来源:test_util.py


示例15: __init__

    def __init__(self, request, data):
        self._underlying_request = request
        method, url, version, headers, self._body = msgpack_unpackb(data)
        if six.PY3:
            method = method.decode()
            url = url.decode()
            version = version.decode()
            headers = [(k.decode(), v.decode()) for k, v in headers]

        self._headers = HTTPHeaders(headers)
        self._meta = {
            'method': method,
            'version': version,
            'host': self._headers.get('Host', ''),
            'remote_addr': self._headers.get('X-Real-IP') or self._headers.get('X-Forwarded-For', ''),
            'query_string': urlparse.urlparse(url).query,
            'cookies': dict(),
            'parsed_cookies': http_parse_cookies(self._headers),
        }
        args = urlparse.parse_qs(urlparse.urlparse(url).query)
        self._files = dict()
        parse_body_arguments(self._headers.get("Content-Type", ""), self._body, args, self._files)
        self._request = dict_list_to_single(args)
开发者ID:cocaine,项目名称:cocaine-framework-python,代码行数:23,代码来源:http_dec.py


示例16: get_dict

    def get_dict(self, *keys, **extras):
        """Returns request dict of given keys.

        This is taken from the httpbin source code and modified
        to fit `tornado.web.RequestHandler`.

        https://github.com/kennethreitz/httpbin/blob/master/httpbin/helpers.py#L113
        """

        request = self.request

        _keys = {
            'url',
            'args',
            'data',
            'origin',
            'headers',
            'files',
            'json'
        }

        assert _keys >= set(keys)

        args = {key: self.get_argument(key)
                        for key in request.arguments.keys()}

        body = request.body
        content_type = request.headers.get('Content-Type', '')

        data = {}
        files = {}


        if body:
            parse_body_arguments(content_type, body, data, files)

        def stringify(value):
            if isinstance(value, list):
                value = [stringify(item) for item in value]
            elif isinstance(value, bytes):
                value = value.decode('utf-8')
            elif isinstance(value, dict):
                value = {key: stringify(val) for key, val in value.items()}
            return value

        # Convert bytes to str
        data = stringify(data)

        def elmentify(value):
            if isinstance(value, list):
                if len(value) == 1:
                    value = value[0]
            return value

        data = {key:elmentify(value) for key, value in data.items()}

        try:
            _json = json_encode(data)
        except:
            _json = None

        xff = request.headers.get('X-Forwarded-For', '')
        origin = request.remote_ip
        if xff:
            origin = xff

        d = dict(
            url=request.uri,
            args=args,
            data=data,
            origin=origin,
            headers=request.headers,
            files=files,
            json=_json
        )

        out_d = dict()

        for key in keys:
            out_d[key] = d.get(key)

        out_d.update(extras)

        return out_d
开发者ID:gitbot,项目名称:sentinel,代码行数:84,代码来源:util.py



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python httputil.parse_multipart_form_data函数代码示例发布时间:2022-05-27
下一篇:
Python httputil.format_timestamp函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap