I have a few views that are high traffic and too intensive for normal 
processing.  I need to cache them.

I tried an inner generator pattern for the HTML, which works well, but 
generating the response is ugly:

@view_config(route="index")
def my_view(self):
"""the core data is cached within the view.  
"""
@cacheable_decorator
def _generate():
as_html = pyramid.renderers.render('/index.mako', {}, self.request)
metadata = self.request.page_metadata  # add_request_method property, 
details about the page
return (as_html, metadata)
(page_html, page_metadata) = _generate()
        response = pyramid.response.Response(
            content_type = 'text/html',
            body = page_html,
            status = 200,
        )
        return response

Is there a better pattern or approach for this?

Caching views is popular in a lot of frameworks, but the only Pyramid stuff 
i found were some problems on StackOverflow.

Having to create a response -- or define a custom renderer for it -- 
suggests that I'm missing something obvious.  The built-in "string" 
renderer won't work -- it sets a 'text/plain' header.  There is no 'html' 
renderer.

Anyone have advice?

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/pylons-discuss.
For more options, visit https://groups.google.com/d/optout.

Reply via email to