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"});