TurboGears - Representación JSON

los @expose()decorador por defecto muestra contenido html. Sin embargo, esto se puede configurar enjson content type. TurboGears admite la representación json a través detg.jsonify.JSONEncoder (**kwargs)clase. Para renderizar datos json, simplemente pase json como tipo de contenido para exponer el decorador.

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

Si se ingresa la URL '/ jsondata' en el navegador, responderá mostrando -

{"hello": "World"}

representación jsonp

jsonp significa json con relleno. Funciona de manera similar a la salida json, excepto por el hecho de que proporciona una respuesta de aplicación / javascript con una llamada a una función de javascript que proporciona todos los valores devueltos por el controlador como argumentos de función.

Para habilitar la representación jsonp, primero debe agregarlo a la lista de motores requeridos dentro de su aplicación: config/app_cfg.py -

base_config.renderers.append('jsonp')

Escriba su decorador de exposición de la siguiente manera:

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

Al acceder a / jsonpdata? Callback = callme, debería ver -

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