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' ในเบราว์เซอร์ 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"});