📜  TurboGears-JSON渲染

📅  最后修改于: 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渲染

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