TurboGears - рендеринг JSON
В @expose()декоратор по умолчанию отображает html-контент. Однако это может быть установлено наjson content type. TurboGears поддерживает рендеринг json черезtg.jsonify.JSONEncoder (**kwargs)класс. Чтобы отобразить данные json, просто передайте json в качестве типа содержимого для предоставления декоратора.
@expose('json')
def jsondata(self, **kwargs):
return dict(hello = 'World')
Если URL-адрес '/ jsondata' введен в браузере, он ответит, показывая -
{"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"});