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"});