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


Python httputil.HTTPServerRequest方法代码示例

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


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

示例1: __init__

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def __init__(self, stream, address, protocol):
        self.address = address
        # Save the socket's address family now so we know how to
        # interpret self.address even after the stream is closed
        # and its socket attribute replaced with None.
        if stream.socket is not None:
            self.address_family = stream.socket.family
        else:
            self.address_family = None
        # In HTTPServerRequest we want an IP, not a full socket address.
        if (self.address_family in (socket.AF_INET, socket.AF_INET6) and
                address is not None):
            self.remote_ip = address[0]
        else:
            # Unix (or other) socket; fake the remote address.
            self.remote_ip = '0.0.0.0'
        if protocol:
            self.protocol = protocol
        elif isinstance(stream, iostream.SSLIOStream):
            self.protocol = "https"
        else:
            self.protocol = "http"
        self._orig_remote_ip = self.remote_ip
        self._orig_protocol = self.protocol 
开发者ID:tao12345666333,项目名称:tornado-zh,代码行数:26,代码来源:httpserver.py

示例2: stream_request_body

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def stream_request_body(cls: Type[RequestHandler]) -> Type[RequestHandler]:
    """Apply to `RequestHandler` subclasses to enable streaming body support.

    This decorator implies the following changes:

    * `.HTTPServerRequest.body` is undefined, and body arguments will not
      be included in `RequestHandler.get_argument`.
    * `RequestHandler.prepare` is called when the request headers have been
      read instead of after the entire body has been read.
    * The subclass must define a method ``data_received(self, data):``, which
      will be called zero or more times as data is available.  Note that
      if the request has an empty body, ``data_received`` may not be called.
    * ``prepare`` and ``data_received`` may return Futures (such as via
      ``@gen.coroutine``, in which case the next method will not be called
      until those futures have completed.
    * The regular HTTP method (``post``, ``put``, etc) will be called after
      the entire body has been read.

    See the `file receiver demo <https://github.com/tornadoweb/tornado/tree/master/demos/file_upload/>`_
    for example usage.
    """  # noqa: E501
    if not issubclass(cls, RequestHandler):
        raise TypeError("expected subclass of RequestHandler, got %r", cls)
    cls._stream_request_body = True
    return cls 
开发者ID:opendevops-cn,项目名称:opendevops,代码行数:27,代码来源:web.py

示例3: get_handler_delegate

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def get_handler_delegate(
        self,
        request: httputil.HTTPServerRequest,
        target_class: Type[RequestHandler],
        target_kwargs: Dict[str, Any] = None,
        path_args: List[bytes] = None,
        path_kwargs: Dict[str, bytes] = None,
    ) -> "_HandlerDelegate":
        """Returns `~.httputil.HTTPMessageDelegate` that can serve a request
        for application and `RequestHandler` subclass.

        :arg httputil.HTTPServerRequest request: current HTTP request.
        :arg RequestHandler target_class: a `RequestHandler` class.
        :arg dict target_kwargs: keyword arguments for ``target_class`` constructor.
        :arg list path_args: positional arguments for ``target_class`` HTTP method that
            will be executed while handling a request (``get``, ``post`` or any other).
        :arg dict path_kwargs: keyword arguments for ``target_class`` HTTP method.
        """
        return _HandlerDelegate(
            self, request, target_class, target_kwargs, path_args, path_kwargs
        ) 
开发者ID:opendevops-cn,项目名称:opendevops,代码行数:23,代码来源:web.py

示例4: __init__

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def __init__(
        self,
        application: Application,
        request: httputil.HTTPServerRequest,
        handler_class: Type[RequestHandler],
        handler_kwargs: Optional[Dict[str, Any]],
        path_args: Optional[List[bytes]],
        path_kwargs: Optional[Dict[str, bytes]],
    ) -> None:
        self.application = application
        self.connection = request.connection
        self.request = request
        self.handler_class = handler_class
        self.handler_kwargs = handler_kwargs or {}
        self.path_args = path_args or []
        self.path_kwargs = path_kwargs or {}
        self.chunks = []  # type: List[bytes]
        self.stream_request_body = _has_stream_request_body(self.handler_class) 
开发者ID:opendevops-cn,项目名称:opendevops,代码行数:20,代码来源:web.py

示例5: headers_received

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def headers_received(
        self,
        start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine],
        headers: httputil.HTTPHeaders,
    ) -> Optional[Awaitable[None]]:
        assert isinstance(start_line, httputil.RequestStartLine)
        request = httputil.HTTPServerRequest(
            connection=self.request_conn,
            server_connection=self.server_conn,
            start_line=start_line,
            headers=headers,
        )

        self.delegate = self.router.find_handler(request)
        if self.delegate is None:
            app_log.debug(
                "Delegate for %s %s request not found",
                start_line.method,
                start_line.path,
            )
            self.delegate = _DefaultMessageDelegate(self.request_conn)

        return self.delegate.headers_received(start_line, headers) 
开发者ID:opendevops-cn,项目名称:opendevops,代码行数:25,代码来源:routing.py

示例6: find_handler

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def find_handler(
        self, request: httputil.HTTPServerRequest, **kwargs: Any
    ) -> Optional[httputil.HTTPMessageDelegate]:
        for rule in self.rules:
            target_params = rule.matcher.match(request)
            if target_params is not None:
                if rule.target_kwargs:
                    target_params["target_kwargs"] = rule.target_kwargs

                delegate = self.get_target_delegate(
                    rule.target, request, **target_params
                )

                if delegate is not None:
                    return delegate

        return None 
开发者ID:opendevops-cn,项目名称:opendevops,代码行数:19,代码来源:routing.py

示例7: match

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def match(self, request: httputil.HTTPServerRequest) -> Optional[Dict[str, Any]]:
        match = self.regex.match(request.path)
        if match is None:
            return None
        if not self.regex.groups:
            return {}

        path_args = []  # type: List[bytes]
        path_kwargs = {}  # type: Dict[str, bytes]

        # Pass matched groups to the handler.  Since
        # match.groups() includes both named and
        # unnamed groups, we want to use either groups
        # or groupdict but not both.
        if self.regex.groupindex:
            path_kwargs = dict(
                (str(k), _unquote_or_none(v)) for (k, v) in match.groupdict().items()
            )
        else:
            path_args = [_unquote_or_none(s) for s in match.groups()]

        return dict(path_args=path_args, path_kwargs=path_kwargs) 
开发者ID:opendevops-cn,项目名称:opendevops,代码行数:24,代码来源:routing.py

示例8: stream_request_body

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def stream_request_body(cls):
    """Apply to `RequestHandler` subclasses to enable streaming body support.

    This decorator implies the following changes:

    * `.HTTPServerRequest.body` is undefined, and body arguments will not
      be included in `RequestHandler.get_argument`.
    * `RequestHandler.prepare` is called when the request headers have been
      read instead of after the entire body has been read.
    * The subclass must define a method ``data_received(self, data):``, which
      will be called zero or more times as data is available.  Note that
      if the request has an empty body, ``data_received`` may not be called.
    * ``prepare`` and ``data_received`` may return Futures (such as via
      ``@gen.coroutine``, in which case the next method will not be called
      until those futures have completed.
    * The regular HTTP method (``post``, ``put``, etc) will be called after
      the entire body has been read.

    See the `file receiver demo <https://github.com/tornadoweb/tornado/tree/master/demos/file_upload/>`_
    for example usage.
    """  # noqa: E501
    if not issubclass(cls, RequestHandler):
        raise TypeError("expected subclass of RequestHandler, got %r", cls)
    cls._stream_request_body = True
    return cls 
开发者ID:tp4a,项目名称:teleport,代码行数:27,代码来源:web.py

示例9: __init__

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def __init__(self, stream, address, protocol, trusted_downstream=None):
        self.address = address
        # Save the socket's address family now so we know how to
        # interpret self.address even after the stream is closed
        # and its socket attribute replaced with None.
        if stream.socket is not None:
            self.address_family = stream.socket.family
        else:
            self.address_family = None
        # In HTTPServerRequest we want an IP, not a full socket address.
        if (self.address_family in (socket.AF_INET, socket.AF_INET6) and
                address is not None):
            self.remote_ip = address[0]
        else:
            # Unix (or other) socket; fake the remote address.
            self.remote_ip = '0.0.0.0'
        if protocol:
            self.protocol = protocol
        elif isinstance(stream, iostream.SSLIOStream):
            self.protocol = "https"
        else:
            self.protocol = "http"
        self._orig_remote_ip = self.remote_ip
        self._orig_protocol = self.protocol
        self.trusted_downstream = set(trusted_downstream or []) 
开发者ID:tp4a,项目名称:teleport,代码行数:27,代码来源:httpserver.py

示例10: get_target_delegate

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def get_target_delegate(self, target, request, **target_params):
        """Returns an instance of `~.httputil.HTTPMessageDelegate` for a
        Rule's target. This method is called by `~.find_handler` and can be
        extended to provide additional target types.

        :arg target: a Rule's target.
        :arg httputil.HTTPServerRequest request: current request.
        :arg target_params: additional parameters that can be useful
            for `~.httputil.HTTPMessageDelegate` creation.
        """
        if isinstance(target, Router):
            return target.find_handler(request, **target_params)

        elif isinstance(target, httputil.HTTPServerConnectionDelegate):
            return target.start_request(request.server_connection, request.connection)

        elif callable(target):
            return _CallableAdapter(
                partial(target, **target_params), request.connection
            )

        return None 
开发者ID:tp4a,项目名称:teleport,代码行数:24,代码来源:routing.py

示例11: cookies

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def cookies(self):
        """ `self.request.cookies <.httputil.HTTPServerRequest.cookies>`
        的别名."""
        return self.request.cookies 
开发者ID:tao12345666333,项目名称:tornado-zh,代码行数:6,代码来源:web.py

示例12: stream_request_body

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def stream_request_body(cls):
    """适用于 `RequestHandler` 子类以开启流式body支持.

    这个装饰器意味着以下变化:

    * `.HTTPServerRequest.body` 变成了未定义, 并且body参数将不再被
      `RequestHandler.get_argument` 所包含.
    * `RequestHandler.prepare` 被调用当读到请求头而不是在整个请求体
      都被读到之后.
    * 子类必须定义一个方法 ``data_received(self, data):``, 这将被调
      用0次或多次当数据是可用状态时. 注意如果该请求的body是空的,
      ``data_received`` 可能不会被调用.
    * ``prepare`` 和 ``data_received`` 可能返回Futures对象(就像通过
      ``@gen.coroutine``, 在这种情况下下一个方法将不会被调用直到这些
      futures完成.
    * 常规的HTTP方法 (``post``, ``put``, 等)将在整个body被读取后被
      调用.

    在 ``data_received`` 和asynchronous之间有一个微妙的互动
    ``prepare``: ``data_received`` 的第一次调用可能出现在任何地方
    在调用 ``prepare`` 已经返回 *或 yielded*.
    """
    if not issubclass(cls, RequestHandler):
        raise TypeError("expected subclass of RequestHandler, got %r", cls)
    cls._stream_request_body = True
    return cls 
开发者ID:tao12345666333,项目名称:tornado-zh,代码行数:28,代码来源:web.py

示例13: headers_received

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def headers_received(self, start_line, headers):
        self.set_request(httputil.HTTPServerRequest(
            connection=self.connection, start_line=start_line,
            headers=headers))
        if self.stream_request_body:
            self.request.body = Future()
            return self.execute() 
开发者ID:tao12345666333,项目名称:tornado-zh,代码行数:9,代码来源:web.py

示例14: headers_received

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def headers_received(self, start_line, headers):
        if self.server.xheaders:
            self.connection.context._apply_xheaders(headers)
        if self.delegate is None:
            self.request = httputil.HTTPServerRequest(
                connection=self.connection, start_line=start_line,
                headers=headers)
        else:
            return self.delegate.headers_received(start_line, headers) 
开发者ID:tao12345666333,项目名称:tornado-zh,代码行数:11,代码来源:httpserver.py

示例15: environ

# 需要导入模块: from tornado import httputil [as 别名]
# 或者: from tornado.httputil import HTTPServerRequest [as 别名]
def environ(request):
        """Converts a `tornado.httputil.HTTPServerRequest` to a WSGI environment.
        """
        hostport = request.host.split(":")
        if len(hostport) == 2:
            host = hostport[0]
            port = int(hostport[1])
        else:
            host = request.host
            port = 443 if request.protocol == "https" else 80
        environ = {
            "REQUEST_METHOD": request.method,
            "SCRIPT_NAME": "",
            "PATH_INFO": to_wsgi_str(escape.url_unescape(
                request.path, encoding=None, plus=False)),
            "QUERY_STRING": request.query,
            "REMOTE_ADDR": request.remote_ip,
            "SERVER_NAME": host,
            "SERVER_PORT": str(port),
            "SERVER_PROTOCOL": request.version,
            "wsgi.version": (1, 0),
            "wsgi.url_scheme": request.protocol,
            "wsgi.input": BytesIO(escape.utf8(request.body)),
            "wsgi.errors": sys.stderr,
            "wsgi.multithread": False,
            "wsgi.multiprocess": True,
            "wsgi.run_once": False,
        }
        if "Content-Type" in request.headers:
            environ["CONTENT_TYPE"] = request.headers.pop("Content-Type")
        if "Content-Length" in request.headers:
            environ["CONTENT_LENGTH"] = request.headers.pop("Content-Length")
        for key, value in request.headers.items():
            environ["HTTP_" + key.replace("-", "_").upper()] = value
        return environ 
开发者ID:tao12345666333,项目名称:tornado-zh,代码行数:37,代码来源:wsgi.py


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