📅  最后修改于: 2020-10-19 03:29:38             🧑  作者: Mango
默认情况下, @expose()装饰器呈现html内容。但是,可以将其设置为json content type 。 TurboGears通过tg.jsonify.JSONEncoder( ** kwargs )类支持json呈现。要渲染JSON数据,只需将json作为内容类型传递即可公开装饰器。
@expose('json')
def jsondata(self, **kwargs):
return dict(hello = 'World')
如果在浏览器中输入了“ / jsondata” URL,它将通过显示-
{"hello": "World"}
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"});