2011-06-12 54 views
1

我有做了一个视图中调用类似如下:金字塔 - 是否可以呈现我的mako模板作为我的视图中的字符串可调用?

def post_comment(request): 
    """ Posts the users comment to the thread """ 

    try: 
     new_comment = comments.post() 
    except InvalidComment as e: 
     return {'success' : False, 'message' : e.message} 

    # need to do something like: 
    new_comment = pyramid.template.render(new_comment) 

    return {'success' : True, 'message' : new_comment} 

该视图可调用路由配置是:

config.add_route('post_comment', 
       '/comments/{link_id}/post', 
       view='site.views.post_comment', 
       view_renderer='json') 

利用这一点,我可以AJAXify我的评论意见,并有一个闪亮的网页2.0网站。问题是,我想通过我的mako模板渲染new_comment来构建HTML并返回它。但是,我找不到办法做到这一点。

如何在我的视图中呈现mako模板可调用以将HTML作为JSON响应返回?

回答

0

我不知道我理解你的问题,但我认为你需要2个视图,一个用于json,另一个用于mako。对于mako视图,请按照the official docs和mmerickel的回答。如果你想在同一个类中有多个视图可调用,你可以看看pyramid_handlers

8

您可以直接使用记录的金字塔API来电来访renderhttp://docs.pylonsproject.org/projects/pyramid/1.0/api/renderers.html#pyramid.renderers.render

from pyramid.renderers import render 

def my_view(request) 
    renderer_dict = {} # dictionary of values to pass to the renderer 
    new_comment = render('new_comment.mako', renderer_dict, request) 
    … 
+0

如何导入呈现?请张贴导入线。 – limovala 2013-12-09 08:54:46

+1

正如文档所述,它位于'pyramid.renderers'模块中。 http://docs.pylonsproject.org/projects/pyramid/en/latest/api/renderers.html#pyramid.renderers.render – 2013-12-09 16:04:11

相关问题