本文整理汇总了Python中werkzeug.wrappers.Response.content_length方法的典型用法代码示例。如果您正苦于以下问题:Python Response.content_length方法的具体用法?Python Response.content_length怎么用?Python Response.content_length使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类werkzeug.wrappers.Response
的用法示例。
在下文中一共展示了Response.content_length方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_file_response
# 需要导入模块: from werkzeug.wrappers import Response [as 别名]
# 或者: from werkzeug.wrappers.Response import content_length [as 别名]
def get_file_response(self, path, request):
try:
full_path = find_file(self.search_paths, path)
if full_path is None:
raise NotFound()
file_obj = open(full_path, 'rb')
mtime = get_file_mtime(full_path)
fsize = os.path.getsize(full_path)
except (ValueError, IOError, OSError):
raise Forbidden()
mimetype, encoding = mimetypes.guess_type(full_path)
if not mimetype:
peeked = peek_file(file_obj, 1024)
is_binary = is_binary_string(peeked)
if peeked and is_binary:
mimetype = self.default_binary_mime
else:
mimetype = self.default_text_mime # TODO: binary
resp = Response('')
cached_mtime = request.if_modified_since
if self.cache_timeout:
resp.cache_control.public = True
if mtime == cached_mtime:
file_obj.close()
resp.status_code = 304
resp.cache_control.max_age = self.cache_timeout
return resp
file_wrapper = request.environ.get('wsgi.file_wrapper', FileWrapper)
resp.response = file_wrapper(file_obj)
resp.content_type = mimetype
resp.content_length = fsize
resp.last_modified = mtime
return resp
示例2: render_static
# 需要导入模块: from werkzeug.wrappers import Response [as 别名]
# 或者: from werkzeug.wrappers.Response import content_length [as 别名]
def render_static(self, request, fileobj):
if request.method != 'GET':
raise http.MethodNotAllowed(['GET'])
content_type, _ = mimetypes.guess_type(fileobj.name)
stat = os.stat(fileobj.name)
etag = hashlib.md5(str(stat.st_mtime)).hexdigest()
response = Response(fileobj, mimetype=content_type)
response.content_length = stat.st_size
response.add_etag(etag)
response.last_modified = datetime.utcfromtimestamp(stat.st_mtime)
response.expires = datetime.utcfromtimestamp(stat.st_mtime + self.static_expires)
response.make_conditional(request)
return response
示例3: _getStaticResponse
# 需要导入模块: from werkzeug.wrappers import Response [as 别名]
# 或者: from werkzeug.wrappers.Response import content_length [as 别名]
def _getStaticResponse(self):
rs = Response()
# find the static resource
path = [self.static_path]
path.extend(self.requested_path.split('/'))
path = os.path.join(*path)
# check last modified
modified_real = datetime.fromtimestamp(os.stat(path).st_mtime)
# check if cache is in browser and if it is new enough
if self.request.if_modified_since:
if modified_real <= self.request.if_modified_since:
# the cache is usable -> not modified status
rs.status_code=304
return rs
# cache is old, proceed serving
with open(path, 'r') as fh:
rs.data = fh.read()
rs.content_length = len(rs.data)
# set content type
try:
ext = path.split(".")[-1].lower()
except IndexError:
rs.content_type="text/text"
else:
rs.content_type = self._types.get(ext, 'text/text')
# set cache headers
rs.pragma = 'public'
rs.headers['Cache-Control']= "max-age=%d" % (24*3600)
expires = datetime.now()+timedelta(days=1)
rs.headers['Expires'] = http_date(expires)
rs.headers['Last-Modified'] = http_date(modified_real)
return rs
示例4: prepare_response
# 需要导入模块: from werkzeug.wrappers import Response [as 别名]
# 或者: from werkzeug.wrappers.Response import content_length [as 别名]
def prepare_response(tpl_env, raw_response):
if type(raw_response) is Response:
return raw_response
if len(raw_response) > 3:
raise ValueError
view, template = raw_response[:2]
response = Response('', content_type = "text/html; charset=UTF-8")
response.data = tpl_env.get_template(template).render(**view)
response.content_length = len(response.data)
if len(raw_response) == 3:
response.status_code = raw_response[2]
else:
response.status_code = 200
return response
示例5: return_json
# 需要导入模块: from werkzeug.wrappers import Response [as 别名]
# 或者: from werkzeug.wrappers.Response import content_length [as 别名]
def return_json(view):
response = Response('', content_type="text/json; charset=UTF-8")
response.data = dumps(view)
response.content_length = len(response.data)
response.content_type = "application/json"
return response