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


Python compat.bytes_函数代码示例

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


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

示例1: set_cookie

 def set_cookie(self, key, value='', max_age=None,
                path='/', domain=None, secure=False, httponly=False,
                comment=None, expires=None, overwrite=False):
     """
     Set (add) a cookie for the response
     """
     if overwrite:
         self.unset_cookie(key, strict=False)
     if value is None: # delete the cookie from the client
         value = ''
         max_age = 0
         expires = timedelta(days=-5)
     elif expires is None and max_age is not None:
         if isinstance(max_age, int):
             max_age = timedelta(seconds=max_age)
         expires = datetime.utcnow() + max_age
     elif max_age is None and expires is not None:
         max_age = expires - datetime.utcnow()
     value = bytes_(value, 'utf8')
     key = bytes_(key, 'utf8')
     m = Morsel(key, value)
     m.path = bytes_(path, 'utf8')
     m.domain = bytes_(domain, 'utf8')
     m.comment = bytes_(comment, 'utf8')
     m.expires = expires
     m.max_age = max_age
     m.secure = secure
     m.httponly = httponly
     self.headerlist.append(('Set-Cookie', m.serialize()))
开发者ID:nkunal,项目名称:webob,代码行数:29,代码来源:response.py

示例2: _request_uri

def _request_uri(environ):
    """Like wsgiref.url.request_uri, except eliminates :80 ports

    Return the full request URI"""
    url = environ["wsgi.url_scheme"] + "://"

    if environ.get("HTTP_HOST"):
        url += environ["HTTP_HOST"]
    else:
        url += environ["SERVER_NAME"] + ":" + environ["SERVER_PORT"]
    if url.endswith(":80") and environ["wsgi.url_scheme"] == "http":
        url = url[:-3]
    elif url.endswith(":443") and environ["wsgi.url_scheme"] == "https":
        url = url[:-4]

    if PY3:  # pragma: no cover
        script_name = bytes_(environ.get("SCRIPT_NAME", "/"), "latin-1")
        path_info = bytes_(environ.get("PATH_INFO", ""), "latin-1")
    else:
        script_name = environ.get("SCRIPT_NAME", "/")
        path_info = environ.get("PATH_INFO", "")

    url += url_quote(script_name)
    qpath_info = url_quote(path_info)
    if not "SCRIPT_NAME" in environ:
        url += qpath_info[1:]
    else:
        url += qpath_info
    return url
开发者ID:mvidner,项目名称:webob,代码行数:29,代码来源:response.py

示例3: _request_uri

def _request_uri(environ):
    """Like wsgiref.url.request_uri, except eliminates :80 ports

    Return the full request URI"""
    url = environ['wsgi.url_scheme']+'://'

    if environ.get('HTTP_HOST'):
        url += environ['HTTP_HOST']
    else:
        url += environ['SERVER_NAME'] + ':' + environ['SERVER_PORT']
    if url.endswith(':80') and environ['wsgi.url_scheme'] == 'http':
        url = url[:-3]
    elif url.endswith(':443') and environ['wsgi.url_scheme'] == 'https':
        url = url[:-4]

    if PY3: # pragma: no cover
        script_name = bytes_(environ.get('SCRIPT_NAME', '/'), 'latin-1')
        path_info = bytes_(environ.get('PATH_INFO', ''), 'latin-1')
    else:
        script_name = environ.get('SCRIPT_NAME', '/')
        path_info = environ.get('PATH_INFO', '')

    url += url_quote(script_name)
    qpath_info = url_quote(path_info)
    if not 'SCRIPT_NAME' in environ:
        url += qpath_info[1:]
    else:
        url += qpath_info
    return url
开发者ID:nkunal,项目名称:webob,代码行数:29,代码来源:response.py

示例4: make_cookie

def make_cookie(name, value, max_age=None, path='/', domain=None,
                secure=False, httponly=False, comment=None):
    """ Generate a cookie value.  If ``value`` is None, generate a cookie value
    with an expiration date in the past"""
    
    # We are deleting the cookie, override max_age and expires
    if value is None:
        value = b''
        max_age = 0
        expires = -5 * 60 * 60 * 24

    # Convert max_age to seconds
    elif isinstance(max_age, timedelta):
        max_age = (max_age.days * 60 * 60 * 24) + max_age.seconds
        expires = max_age
    else:
        expires = max_age

    morsel = Morsel(name, value)

    if domain is not None:
        morsel.domain = bytes_(domain)
    if path is not None:
        morsel.path = bytes_(path)
    if httponly:
        morsel.httponly = True
    if secure:
        morsel.secure = True
    if max_age is not None:
        morsel.max_age = max_age
    if expires is not None:
        morsel.expires = expires
    if comment is not None:
        morsel.comment = bytes_(comment)
    return morsel.serialize()
开发者ID:maisano,项目名称:webob,代码行数:35,代码来源:cookies.py

示例5: test_seek_bigger_than_limit

    def test_seek_bigger_than_limit(self):
        fp = BytesIO(bytes_("0123456789"))
        i = static.FileIter(fp).app_iter_range(limit=1, seek=2)

        # XXX: this should not return anything actually, since we are starting
        # to read after the place we wanted to stop.
        self.assertEqual(bytes_("23456789"), next(i))
        self.assertRaises(StopIteration, next, i)
开发者ID:AgentJay,项目名称:webapp-improved,代码行数:8,代码来源:test_static.py

示例6: test_multiple_reads

    def test_multiple_reads(self):
        fp = BytesIO(bytes_("012"))
        i = static.FileIter(fp).app_iter_range(block_size=1)

        self.assertEqual(bytes_("0"), next(i))
        self.assertEqual(bytes_("1"), next(i))
        self.assertEqual(bytes_("2"), next(i))
        self.assertRaises(StopIteration, next, i)
开发者ID:AgentJay,项目名称:webapp-improved,代码行数:8,代码来源:test_static.py

示例7: serialize

def serialize(secret, salt, data):
    import hmac
    import base64
    import json
    from hashlib import sha1
    from webob.compat import bytes_
    salted_secret = bytes_(salt or '', 'utf-8') + bytes_(secret, 'utf-8')
    cstruct = bytes_(json.dumps(data))
    sig = hmac.new(salted_secret, cstruct, sha1).digest()
    return base64.urlsafe_b64encode(sig + cstruct).rstrip(b'=')
开发者ID:dairiki,项目名称:webob,代码行数:10,代码来源:test_cookies.py

示例8: conditional_response_app

    def conditional_response_app(self, environ, start_response):
        """
        Like the normal __call__ interface, but checks conditional headers:

        * If-Modified-Since   (304 Not Modified; only on GET, HEAD)
        * If-None-Match       (304 Not Modified; only on GET, HEAD)
        * Range               (406 Partial Content; only on GET, HEAD)
        """
        req = BaseRequest(environ)
        headerlist = self._abs_headerlist(environ)
        method = environ.get("REQUEST_METHOD", "GET")
        if method in self._safe_methods:
            status304 = False
            if req.if_none_match and self.etag:
                status304 = self.etag in req.if_none_match
            elif req.if_modified_since and self.last_modified:
                status304 = self.last_modified <= req.if_modified_since
            if status304:
                start_response("304 Not Modified", filter_headers(headerlist))
                return EmptyResponse(self._app_iter)
        if (
            req.range
            and self in req.if_range
            and self.content_range is None
            and method in ("HEAD", "GET")
            and self.status_code == 200
            and self.content_length is not None
        ):
            content_range = req.range.content_range(self.content_length)
            if content_range is None:
                iter_close(self._app_iter)
                body = bytes_("Requested range not satisfiable: %s" % req.range)
                headerlist = [
                    ("Content-Length", str(len(body))),
                    ("Content-Range", str(ContentRange(None, None, self.content_length))),
                    ("Content-Type", "text/plain"),
                ] + filter_headers(headerlist)
                start_response("416 Requested Range Not Satisfiable", headerlist)
                if method == "HEAD":
                    return ()
                return [body]
            else:
                app_iter = self.app_iter_range(content_range.start, content_range.stop)
                if app_iter is not None:
                    # the following should be guaranteed by
                    # Range.range_for_length(length)
                    assert content_range.start is not None
                    headerlist = [
                        ("Content-Length", str(content_range.stop - content_range.start)),
                        ("Content-Range", str(content_range)),
                    ] + filter_headers(headerlist, ("content-length",))
                    start_response("206 Partial Content", headerlist)
                    if method == "HEAD":
                        return EmptyResponse(app_iter)
                    return app_iter

        start_response(self.status, headerlist)
        if method == "HEAD":
            return EmptyResponse(self._app_iter)
        return self._app_iter
开发者ID:mvidner,项目名称:webob,代码行数:60,代码来源:response.py

示例9: serialize_samesite

def serialize_samesite(v):
    v = bytes_(v)

    if v.lower() not in (b"strict", b"lax"):
        raise ValueError("SameSite must be 'Strict' or 'Lax'")

    return v
开发者ID:Pylons,项目名称:webob,代码行数:7,代码来源:cookies.py

示例10: test_disconnect_detection_hinted_readline

def test_disconnect_detection_hinted_readline():
    data = 'abc'*(1<<20)
    req = Request.blank('/', POST=data)
    req.is_body_seekable = False
    line = req.body_file.readline(1<<16)
    assert line
    assert bytes_(data).startswith(line)
开发者ID:Natim,项目名称:webob,代码行数:7,代码来源:test_request_nose.py

示例11: create_file

def create_file(content, *paths):
    """Convenient function to create a new file with some content"""
    path = os.path.join(*paths)
    with open(path, "wb") as fp:
        fp.write(bytes_(content))

    return path
开发者ID:Pylons,项目名称:webob,代码行数:7,代码来源:test_static.py

示例12: dispatch_wsgi

    def dispatch_wsgi(self, environ, start_response):
        """
        Dispatches a WSGI request.

        :param environ: WSGI request environment.
        :param start_response: WSGI response callback
        :returns: A valid WSGI response content.
        """
        req = Request(environ)
        req.response = Response()

        try:
            resp = self.dispatch_request(req)
        except HTTPException as e:
            resp = e

        if inspect.isgenerator(resp):
            resp = Response(app_iter=resp)
        elif resp is None:
            resp = req.response
        if isinstance(resp, text_type):
            resp = bytes_(resp, req.charset)
        if isinstance(resp, bytes):
            body = resp
            resp = req.response
            resp.write(body)
        if resp is not req.response:
            resp = req.response.merge_cookies(resp)
        return resp(environ, start_response)
开发者ID:aperezdc,项目名称:omni,代码行数:29,代码来源:routing.py

示例13: serialize_max_age

def serialize_max_age(v):
    if isinstance(v, timedelta):
        v = str(v.seconds + v.days * 24 * 60 * 60)
    elif isinstance(v, int):
        v = str(v)

    return bytes_(v)
开发者ID:Pylons,项目名称:webob,代码行数:7,代码来源:cookies.py

示例14: _send_interrupted_req

def _send_interrupted_req(server, path='/'):
    sock = socket.socket()
    sock.connect(('localhost', server.server_port))
    f = sock.makefile('wb')
    f.write(bytes_(_interrupted_req % path))
    f.flush()
    f.close()
    sock.close()
开发者ID:B-Rich,项目名称:webob,代码行数:8,代码来源:test_in_wsgiref.py

示例15: test_serve_file

    def test_serve_file(self):
        app = static.DirectoryApp(self.test_dir)
        create_file('abcde', self.test_dir, 'bar')
        self.assertEqual(404, get_response(app).status_code)
        self.assertEqual(404, get_response(app, '/foo').status_code)

        resp = get_response(app, '/bar')
        self.assertEqual(200, resp.status_code)
        self.assertEqual(bytes_('abcde'), resp.body)
开发者ID:AgentJay,项目名称:webapp-improved,代码行数:9,代码来源:test_static.py


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