def view(id): obj = cls.by_id(id) if obj is None: return NotFound(id) # check this before lazy-loading during serialization for v in ['updated_at', 'created_at']: if hasattr(obj, v): request.cache_key['modified'] = getattr(obj, v) validate_cache(request) return jsonify(obj)
def configure_caching(response_class): if not app.config.get('CACHE'): return response_class if request.method in ['GET', 'HEAD', 'OPTIONS'] \ and response_class.status_code < 400: try: etag, mod_time = validate_cache(request) response_class.add_etag(etag) response_class.cache_control.max_age = 84600 * 1 response_class.cache_control.public = True if mod_time: response_class.last_modified = mod_time except NotModified: return Response(status=304) return response_class