TurboGears - Kết xuất JSON
Các @expose()decorator theo mặc định hiển thị nội dung html. Tuy nhiên, điều này có thể được đặt thànhjson content type. TurboGears hỗ trợ kết xuất json thông quatg.jsonify.JSONEncoder (**kwargs)lớp học. Để hiển thị dữ liệu json, chỉ cần chuyển json làm loại nội dung để hiển thị trình trang trí.
@expose('json')
def jsondata(self, **kwargs):
return dict(hello = 'World')
Nếu URL '/ jsondata' được nhập vào trình duyệt, nó sẽ phản hồi bằng cách hiển thị -
{"hello": "World"}
jsonp Rendering
jsonp là viết tắt của json với padding. Nó hoạt động tương tự như đầu ra json ngoại trừ thực tế là nó cung cấp phản hồi ứng dụng / javascript với lời gọi hàm javascript cung cấp tất cả các giá trị được bộ điều khiển trả về dưới dạng đối số hàm.
Để kích hoạt kết xuất jsonp, trước tiên bạn phải thêm nó vào danh sách các công cụ cần thiết bên trong ứng dụng của bạn - config/app_cfg.py -
base_config.renderers.append('jsonp')
Viết trang trí tiếp xúc của bạn như sau:
@expose('json')
@expose('jsonp')
def jsonpdata (self, **kwargs):
return dict(hello = 'World')
Khi truy cập / jsonpdata? Callback = callme, bạn sẽ thấy:
callme({"hello": "World"});