TurboGears - JSON 渲染



@expose() 裝飾器預設呈現 html 內容。但是,可以將其設定為 json 內容型別。TurboGears 透過 tg.jsonify.JSONEncoder (**kwargs) 類支援 json 渲染。若要呈現 json 資料,只需將 json 作為內容型別傳遞給 expose 裝飾器即可。

@expose('json')
def jsondata(self, **kwargs):
   return dict(hello = 'World')

如果在瀏覽器中輸入 '/jsondata' URL,它將透過響應方式顯示 −

{"hello": "World"}

jsonp 渲染

JSONP 代表帶填充的 JSON。除了它以呼叫 javascript 函式的 application/javascript 響應提供控制器返回的所有值外,它的工作方式與 json 輸出類似,該函式可提供函式引數。

要啟用 jsonp 呈現,你必須先將其新增到應用程式中的必需引擎列表中 – config/app_cfg.py

base_config.renderers.append('jsonp')

按如下方式編寫你的 expose 裝飾器 −

@expose('json')
@expose('jsonp')
def jsonpdata (self, **kwargs): 
   return dict(hello = 'World')

訪問 /jsonpdata?callback = callme 時,你應看到 −

callme({"hello": "World"});
廣告
© . All rights reserved.