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


Python Response.app_iter方法代码示例

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


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

示例1: index

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
    def index(self, req):
        """ Handle GET and HEAD requests for static files. Directory requests are not allowed"""
        static_dir = os.path.normpath(os.path.join(os.path.dirname(__file__), '../static/'))

        # filter out ..
        try:
            static_path = req.urlvars['path'].replace('/..', '')
        except:
            return HTTPForbidden()

        path = os.path.join(static_dir, static_path) 
        if os.path.isdir(path):
            return HTTPForbidden()

        if req.method == 'GET' or req.method == 'HEAD':
            if os.path.isfile(path):
                etag, modified, mime_type, size = self._get_stat(path)

                res = Response()
                res.headers['content-type'] = mime_type
                res.date = rfc822.formatdate(time.time())
                res.last_modified = modified
                res.etag = etag

                if_modified_since = req.headers.get('HTTP_IF_MODIFIED_SINCE')
                if if_modified_since:
                    if rfc822.parsedate(if_modified_since) >= rfc822.parsedate(last_modified):
                        return HTTPNotModified()

                if_none_match = req.headers.get('HTTP_IF_NONE_MATCH')
                if if_none_match:
                    if if_none_match == '*' or etag in if_none_match:
                        return HTTPNotModified()

                # set the response body
                if req.method == 'GET':
                    fd = open(path, 'rb')
                    if 'wsgi.file_wrapper' in req.environ:
                        res.app_iter = req.environ['wsgi.file_wrapper'](fd)
                        res.content_length = size
                    else:
                        res.app_iter = iter(lambda: fd.read(8192), '')
                        res.content_length = size
                else:
                    res.body = ''

                return res
            else:
                return None
        else:
            return None
开发者ID:sizzlelab,项目名称:pysmsd,代码行数:53,代码来源:static.py

示例2: make_response

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
def make_response(uri, environ):
    
    res = Response(conditional_response=True)
    
    # check if the host is online. If not raise an http error
    if not pingSMB( parseSMBuri(uri)["host"] ):
        return HTTPGatewayTimeout("Host is currently offline. You may try again at a later time.")
    
    try:
        f = c.open(uri)
    except smbc.NoEntryError:
        return HTTPNotFound("The file you requested is no longer available!")
    
    fs = f.fstat()
    filesize = fs[6]
    last_modified = fs[8] # mtime
    filename = uri.split("/")[-1]
    req = Request(environ)
    log.debug("Incoming request: \n" + str(req))
    
    if req.range:
        log.debug("begin ranged transfer")
        res.status_int = 206
        res.content_range = req.range.content_range(filesize)
        (start, stop) = req.range.range_for_length(filesize)
        
        log.debug("filesize: " + str(filesize))
        log.debug("start: " + str(start)  + "   stop: " + str(stop))
        log.debug("Content-Range: " + str(res.content_range))
        
        res.app_iter = FileIterable(uri, start=start, stop=stop)
        res.content_length = stop - start
    
    else:
        log.debug("begin normal transfer")
        res.app_iter = FileIterable(uri)
        res.content_length = filesize
    
    log.debug("Content-Length: " + str(res.content_length))
    
    res.server_protocol = "HTTP/1.1"
    # Make sure the file gets downloaded and not played live
    res.content_type = "application/octet-stream"
    res.last_modified = last_modified
    res.etag = '%s-%s-%s' % (fs[8], fs[6], hash(f))
    res.headers.add("Content-Disposition", 'attachment; filename="%s"' % str(filename) )
    res.headers.add("Accept-Ranges", "bytes")
    return res
开发者ID:agrynchuk,项目名称:noodle-ng,代码行数:50,代码来源:smbfileapp.py

示例3: do_download

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
    def do_download(self, collection_id, post_data, is_new=False):
        if is_new:
            return self.error_response('POST argument required: collection_id')

        writer = post_data.get('writer', self.default_writer)
        
        try:
            log.info('download %s %s' % (collection_id, writer))
        
            output_path = self.get_path(collection_id, self.output_filename, writer)
            os.utime(output_path, None)
            status = self.read_status_file(collection_id, writer)
            response = Response()
            response.app_iter = FileIterable(output_path)
            response.content_length = os.path.getsize(output_path)
            if 'content_type' in status:
                response.content_type = status['content_type'].encode('utf-8', 'ignore')
            else:
                log.warn('no content type in status file')
            if 'file_extension' in status:
                response.headers['Content-Disposition'] = 'inline; filename=collection.%s' %  (
                    status['file_extension'].encode('utf-8', 'ignore'),
                )
            else:
                log.warn('no file extension in status file')
            return response
        except Exception, exc:
            log.ERROR('exception in do_download(): %r' % exc)
            return Response(status=500)
开发者ID:aarddict,项目名称:mwlib,代码行数:31,代码来源:serve.py

示例4: app

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
def app(environ, start_response):
	"""Multipart AJAX request example.
	
	See: http://test.getify.com/mpAjax/description.html
	"""
	
	response = Response()
	
	parts = []
	
	for i in range(12):
		for j in range(12):
			parts.append(executor.submit(mul, i, j))
	
	def stream(parts, timeout=None):
		try:
			for future in as_completed(parts, timeout):
				mime, result = future.result()
				result = result.encode('utf8')
				
				yield "!!!!!!=_NextPart_{num}\nContent-Type: {mime}\nContent-Length: {length}\n\n".format(
						num = randint(100000000, 999999999),
						mime = mime,
						length = len(result)
					).encode('utf8') + result
		
		except TimeoutError:
			for future in parts:
				future.cancel()
	
	response.content_length = None
	response.app_iter = stream(parts, 0.2)
	
	return response(environ, start_response)
开发者ID:marrow,项目名称:WebCore,代码行数:36,代码来源:stream2.py

示例5: file_response

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
def file_response(path):
    resp = Response()
    if exists(path):
        resp.app_iter = FileIterator(path)
    else:
        raise exc.HTTPNotFound("No file found with path %s." % path)
    return resp
开发者ID:jmchilton,项目名称:pulsar,代码行数:9,代码来源:framework.py

示例6: __call__

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
    def __call__(self, environ, start_response):
        req = Request(environ)

        if req.path_info.endswith('.txt'):
            s = 'Hello %s' % req.path_info
            resp = Response(s)
            resp.content_type = 'text/plain'
        elif req.path_info.endswith('.iter'):
            resp = Response()
            s = 'Hello %s' % req.path_info.encode('ascii')

            def app_iter(sample):
                for piece in ('<html><body>', sample, '</body>', '</html>'):
                    yield piece
                self.consumed_iter = True
                yield ' '

            self.consumed_iter = False
            resp.content_type = 'text/html'
            resp.app_iter = app_iter(s)
        else:
            s = '<html><body><h1>Hello %s</h1></body></html>' % req.path_info
            resp = Response(s)
            resp.content_type = 'text/html'

        return resp(environ, start_response)
开发者ID:wylee,项目名称:manhattan,代码行数:28,代码来源:test_middleware.py

示例7: __call__

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
 def __call__(self, environ, start_response):
     res = Response(conditional_response=True)
     def x():
         for i in xrange(10):
             yield str(i)
     res.app_iter = x()
     res.content_length = 10
     return res(environ, start_response)
开发者ID:B-Rich,项目名称:python_scripts,代码行数:10,代码来源:webob_range_test.py

示例8: test_encode_content_gzip_notyet_gzipped_lazy

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
def test_encode_content_gzip_notyet_gzipped_lazy():
    res = Response()
    res.app_iter = StringIO('foo')
    result = res.encode_content('gzip', lazy=True)
    eq_(result, None)
    eq_(res.content_length, None)
    eq_(list(res.app_iter), ['\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff', '',
                             'K\xcb\xcf\x07\x00', '!es\x8c\x03\x00\x00\x00'])
开发者ID:GdZ,项目名称:scriptfile,代码行数:10,代码来源:test_response.py

示例9: make_response

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
def make_response(file, content_type):
    response = Response(content_type=content_type)
    response.app_iter = FileIterable(file)
    stat = os.fstat(file.fileno())
    response.content_length = stat.st_size
    response.last_modified = stat.st_mtime
    response.etag = '%s-%s' % (stat.st_mtime, stat.st_size)
    return response
开发者ID:jrydberg,项目名称:builder,代码行数:10,代码来源:static.py

示例10: create

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
 def create(self, request):
     app, commit, text = self._assert_request_params(
         request, 'app', 'commit', 'text')
     self.log.info(dict(request.headers))
     #request.is_body_readable = True
     process = self.builder(app, commit, text, request.body_file)
     response = Response(status=200)
     response.app_iter = process
     return response
开发者ID:jrydberg,项目名称:builder,代码行数:11,代码来源:api.py

示例11: make_response

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
def make_response(filename):
    res = Response(content_type=get_mimetype(filename),
                   conditional_response=True)
    res.app_iter = FileIterable(filename)
    res.content_length = os.path.getsize(filename)
    res.last_modified = os.path.getmtime(filename)
    res.etag = '%s-%s-%s' % (os.path.getmtime(filename),
                             os.path.getsize(filename), hash(filename))
    return res
开发者ID:ChanChiChoi,项目名称:OpenMDAO-Framework,代码行数:11,代码来源:findlinksrv.py

示例12: file_response

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
def file_response(filename):
    """return a webob response object appropriate to a file name"""
    res = Response(content_type=get_mimetype(filename),
                   conditional_response=True)
    res.app_iter = FileIterable(filename)
    res.content_length = os.path.getsize(filename)
    res.last_modified = os.path.getmtime(filename)
    res.etag = '%s-%s-%s' % (os.path.getmtime(filename),
                             os.path.getsize(filename), hash(filename))
    return res
开发者ID:B-Rich,项目名称:pythonium,代码行数:12,代码来源:fileserver.py

示例13: do_thumb

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
 def do_thumb(self, req, image):
     """
     Serve a thumbnail of an image from the library
     """
     if not image in self.library:
         self.not_found(req)
     resp = Response()
     resp.content_type = 'image/jpeg'
     resp.content_length = self.library.stat_thumbnail(image).st_size
     resp.app_iter = FileWrapper(self.library.open_thumbnail(image))
     return resp
开发者ID:EaSonic,项目名称:picroscopy,代码行数:13,代码来源:wsgi.py

示例14: do_image

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
 def do_image(self, req, image):
     """
     Serve an image from the library
     """
     if not image in self.library:
         self.not_found(req)
     resp = Response()
     resp.content_type, resp.content_encoding = mimetypes.guess_type(
             image, strict=False)
     resp.content_length = self.library.stat_image(image).st_size
     resp.app_iter = FileWrapper(self.library.open_image(image))
     return resp
开发者ID:EaSonic,项目名称:picroscopy,代码行数:14,代码来源:wsgi.py

示例15: push_image

# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import app_iter [as 别名]
    def push_image(self, request, url):
        """Handle request for pushing an image to a registry.

        The request specifies `repository`, `tag` and optionally
        `auth`.
        """
        data = self._assert_request_data(request, 'image')
        auth = data.get('auth') or {}
        iter = self.docker.push(data['image'], auth)
        response = Response(status=200)
        response.app_iter = _add_separators(iter)
        return response
开发者ID:gilliam,项目名称:executor,代码行数:14,代码来源:api.py


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