本文整理汇总了Python中utils._setCacheHeaders函数的典型用法代码示例。如果您正苦于以下问题:Python _setCacheHeaders函数的具体用法?Python _setCacheHeaders怎么用?Python _setCacheHeaders使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了_setCacheHeaders函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: index_html
def index_html(self, REQUEST, RESPONSE):
"""
The default view of the contents of a File or Image.
Returns the contents of the file or image. Also, sets the
Content-Type HTTP header to the objects content type.
"""
self._updateFromFS()
view = _ViewEmulator().__of__(self)
# If we have a conditional get, set status 304 and return
# no content
if _checkConditionalGET(view, extra_context={}):
return ''
RESPONSE.setHeader('Content-Type', self.content_type)
# old-style If-Modified-Since header handling.
if self._setOldCacheHeaders():
# Make sure the CachingPolicyManager gets a go as well
_setCacheHeaders(view, extra_context={})
return ''
data = self._readFile(0)
data_len = len(data)
RESPONSE.setHeader('Content-Length', data_len)
#There are 2 Cache Managers which can be in play....
#need to decide which to use to determine where the cache headers
#are decided on.
if self.ZCacheable_getManager() is not None:
self.ZCacheable_set(None)
else:
_setCacheHeaders(view, extra_context={})
return data
开发者ID:goschtl,项目名称:zope,代码行数:35,代码来源:FSImage.py
示例2: pt_render
def pt_render(self, source=0, extra_context={}):
self._updateFromFS() # Make sure the template has been loaded.
result = FSPageTemplate.inheritedAttribute('pt_render')(
self, source, extra_context
)
if not source:
_setCacheHeaders(self, extra_context)
return result
开发者ID:goschtl,项目名称:zope,代码行数:8,代码来源:FSPageTemplate.py
示例3: __call__
def __call__(self, client=None, REQUEST={}, RESPONSE=None, **kw):
"""Render the document given a client object, REQUEST mapping,
Response, and key word arguments."""
self._updateFromFS()
kw["document_id"] = self.getId()
kw["document_title"] = self.title
if client is not None:
if _checkConditionalGET(self, kw):
return ""
if not self._cache_namespace_keys:
data = self.ZCacheable_get(default=_marker)
if data is not _marker:
# Return cached results.
return data
__traceback_info__ = self._filepath
security = getSecurityManager()
security.addContext(self)
try:
r = Globals.HTML.__call__(self, client, REQUEST, **kw)
if client is None:
# Called as subtemplate, so don't need error propagation!
if RESPONSE is None:
result = r
else:
result = decapitate(r, RESPONSE)
if not self._cache_namespace_keys:
self.ZCacheable_set(result)
return result
if not isinstance(r, basestring) or RESPONSE is None:
if not self._cache_namespace_keys:
self.ZCacheable_set(r)
return r
finally:
security.removeContext(self)
have_key = RESPONSE.headers.has_key
if not (have_key("content-type") or have_key("Content-Type")):
if self.__dict__.has_key("content_type"):
c = self.content_type
else:
c, e = guess_content_type(self.getId(), r)
RESPONSE.setHeader("Content-Type", c)
if RESPONSE is not None:
# caching policy manager hook
_setCacheHeaders(self, {})
result = decapitate(r, RESPONSE)
if not self._cache_namespace_keys:
self.ZCacheable_set(result)
return result
开发者ID:dtgit,项目名称:dtedu,代码行数:57,代码来源:FSDTMLMethod.py
示例4: index_html
def index_html(self, REQUEST, RESPONSE):
"""
The default view of the contents of a File or Image.
Returns the contents of the file or image. Also, sets the
Content-Type HTTP header to the objects content type.
"""
self._updateFromFS()
data = self._readFile(0)
data_len = len(data)
last_mod = self._file_mod_time
status = 200
# HTTP If-Modified-Since header handling.
header=REQUEST.get_header('If-Modified-Since', None)
if header is not None:
header = header.split(';')[0]
# Some proxies seem to send invalid date strings for this
# header. If the date string is not valid, we ignore it
# rather than raise an error to be generally consistent
# with common servers such as Apache (which can usually
# understand the screwy date string as a lucky side effect
# of the way they parse it).
try:
mod_since=long(DateTime(header).timeTime())
except:
mod_since=None
if mod_since is not None:
if last_mod > 0 and last_mod <= mod_since:
status = 304
data = ''
#Last-Modified will get stomped on by a cache policy it there is
#one set....
RESPONSE.setStatus(status)
RESPONSE.setHeader('Last-Modified', rfc1123_date(last_mod))
RESPONSE.setHeader('Content-Type', self.content_type)
if status != 304:
# Avoid setting content-length for a 304. See RFC 2616.
# Zope might still, for better or for worse, set a
# content-length header with value "0".
RESPONSE.setHeader('Content-Length', data_len)
#There are 2 Cache Managers which can be in play....
#need to decide which to use to determine where the cache headers
#are decided on.
if self.ZCacheable_getManager() is not None:
self.ZCacheable_set(None)
else:
_setCacheHeaders(_ViewEmulator().__of__(self), extra_context={})
return data
开发者ID:goschtl,项目名称:zope,代码行数:52,代码来源:FSFile.py
示例5: __call__
def __call__(self, client=None, REQUEST={}, RESPONSE=None, **kw):
"""Render the document given a client object, REQUEST mapping,
Response, and key word arguments."""
self._updateFromFS()
if not self._cache_namespace_keys:
data = self.ZCacheable_get(default=_marker)
if data is not _marker:
# Return cached results.
return data
kw['document_id'] =self.getId()
kw['document_title']=self.title
security=getSecurityManager()
security.addContext(self)
try:
if client is None:
# Called as subtemplate, so don't need error propagation!
r=Globals.HTML.__call__(self, client, REQUEST, **kw)
if RESPONSE is None: result = r
else: result = decapitate(r, RESPONSE)
if not self._cache_namespace_keys:
self.ZCacheable_set(result)
return result
r=Globals.HTML.__call__(self, client, REQUEST, **kw)
if type(r) is not type('') or RESPONSE is None:
if not self._cache_namespace_keys:
self.ZCacheable_set(r)
return r
finally: security.removeContext(self)
have_key=RESPONSE.headers.has_key
if not (have_key('content-type') or have_key('Content-Type')):
if self.__dict__.has_key('content_type'):
c=self.content_type
else:
c, e=guess_content_type(self.getId(), r)
RESPONSE.setHeader('Content-Type', c)
if RESPONSE is not None:
# caching policy manager hook
_setCacheHeaders(self, {})
result = decapitate(r, RESPONSE)
if not self._cache_namespace_keys:
self.ZCacheable_set(result)
return result
开发者ID:goschtl,项目名称:zope,代码行数:50,代码来源:FSDTMLMethod.py
示例6: pt_render
def pt_render(self, source=0, extra_context={}):
self._updateFromFS() # Make sure the template has been loaded.
if not source:
# If we have a conditional get, set status 304 and return
# no content
if _checkConditionalGET(self, extra_context):
return ''
result = FSPageTemplate.inheritedAttribute('pt_render')(
self, source, extra_context
)
if not source:
_setCacheHeaders(self, extra_context)
return result
开发者ID:azazel75,项目名称:Products.FileSystemSite,代码行数:14,代码来源:FSPageTemplate.py
示例7: index_html
def index_html(self, REQUEST, RESPONSE):
"""
The default view of the contents of a File or Image.
Returns the contents of the file or image. Also, sets the
Content-Type HTTP header to the objects content type.
"""
self._updateFromFS()
data = self._data
# HTTP If-Modified-Since header handling.
header=REQUEST.get_header('If-Modified-Since', None)
if header is not None:
header = header.split(';')[0]
# Some proxies seem to send invalid date strings for this
# header. If the date string is not valid, we ignore it
# rather than raise an error to be generally consistent
# with common servers such as Apache (which can usually
# understand the screwy date string as a lucky side effect
# of the way they parse it).
try: mod_since=long(DateTime(header).timeTime())
except: mod_since=None
if mod_since is not None:
last_mod = self._file_mod_time
if last_mod > 0 and last_mod <= mod_since:
# Set header values since apache caching will return
# Content-Length of 0 in response if size is not set here
RESPONSE.setHeader('Last-Modified', rfc1123_date(last_mod))
RESPONSE.setHeader('Content-Type', self.content_type)
RESPONSE.setHeader('Content-Length', len(data))
RESPONSE.setStatus(304)
return ''
#Last-Modified will get stomped on by a cache policy it there is one set....
RESPONSE.setHeader('Last-Modified', rfc1123_date(self._file_mod_time))
RESPONSE.setHeader('Content-Type', self.content_type)
RESPONSE.setHeader('Content-Length', len(data))
#There are 2 Cache Managers which can be in play....need to decide which to use
#to determine where the cache headers are decided on.
if self.ZCacheable_getManager() is not None:
self.ZCacheable_set(None)
else:
_setCacheHeaders(self, extra_context={})
return data
开发者ID:goschtl,项目名称:zope,代码行数:44,代码来源:FSImage.py
示例8: ZCache_set
def ZCache_set(self, ob, data, view_name, keywords, mtime_func):
""" An object is pushed into the cache
Even though this cache implementation does not cache anything per se,
this method is used as a suitable hook to activate the real heavy
lifting done by the CachePolicyManager.
"""
if ob.meta_type not in VIEW_METATYPES:
ob = _ViewEmulator().__of__(ob)
return _setCacheHeaders(ob, extra_context={})
开发者ID:goschtl,项目名称:zope,代码行数:11,代码来源:CachingPolicyManager.py
示例9: pt_render
def pt_render(self, source=0, extra_context={}):
self._updateFromFS() # Make sure the template has been loaded.
try:
result = FSPageTemplate.inheritedAttribute('pt_render')(
self, source, extra_context
)
if not source:
_setCacheHeaders(self, extra_context)
return result
except RuntimeError:
if Globals.DevelopmentMode:
err = FSPageTemplate.inheritedAttribute( 'pt_errors' )( self )
if not err:
err = sys.exc_info()
err_type = err[0]
err_msg = '<pre>%s</pre>' % replace( str(err[1]), "\'", "'" )
msg = 'FS Page Template %s has errors: %s.<br>%s' % (
self.id, err_type, html_quote(err_msg) )
raise RuntimeError, msg
else:
raise
开发者ID:goschtl,项目名称:zope,代码行数:22,代码来源:FSPageTemplate.py
注:本文中的utils._setCacheHeaders函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论