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の略です。これは、コントローラーによって返されるすべての値を関数の引数として提供するjavascript関数の呼び出しでapplication / javascript応答を提供するという事実を除いて、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"});