2011-06-12 77 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

相關問題