Учебники

TurboGears — рендеринг JSON

Декоратор @expose () по умолчанию отображает HTML-контент. Однако это может быть установлено в тип контента json . 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, за исключением того факта, что он предоставляет ответ application / 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 вы должны увидеть —