TurboGears - JSON 渲染


@expose ()装饰器默认渲染 html 内容。但是,可以将其设置为json 内容类型TurboGears 通过tg.jsonify.JSONEncoder ( **kwargs )类支持 json 渲染。要渲染 json 数据,只需将 json 作为内容类型传递以公开装饰器。

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

如果在浏览器中输入“/jsondata”URL,它将通过显示进行响应 -

{"hello": "World"}

jsonp 渲染

jsonp 代表带填充的 json。它的工作方式与 json 输出类似,不同之处在于它提供了一个应用程序/javascript 响应,并调用了一个 javascript 函数,该函数将控制器返回的所有值作为函数参数提供。

要启用 jsonp 渲染,您必须首先将其附加到应用程序内所需引擎的列表中 – config/app_cfg.py -

base_config.renderers.append('jsonp')

按如下方式编写您的暴露装饰器 -

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

访问 /jsonpdata?callback = callme 时,您应该看到 -

callme({"hello": "World"});