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')
브라우저에 '/ jsondata'URL을 입력하면-
{"hello": "World"}
jsonp 렌더링
jsonp는 패딩이있는 json을 나타냅니다. 컨트롤러가 반환하는 모든 값을 함수 인수로 제공하는 자바 스크립트 함수 호출과 함께 애플리케이션 / 자바 스크립트 응답을 제공한다는 점을 제외하면 json 출력과 유사하게 작동합니다.
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"});