2015-10-20 86 views
1

我通過查詢並轉換成JSON對象來獲取數據庫中的所有數據。這個JSON對象數據需要在html頁面上顯示。如何發送json對象到webapp2中的html頁面?

我怎樣才能JSON對象發送到HTML頁面中使用webapp2的框架?

例如:

self.response.headers['Content-Type'] = 'application/json' 
     obj = { 
     'success': 'some var', 
     'payload': 'some var' 
       } 

self.response.out.write(obj)即JSON對象需要發送到HTML頁面中顯示時的輸出。

+1

您可以獲取與前端阿賈克斯JSON來渲染,說,Handlebars.js/Mustache.js /不管或通過將JSON到您的Jinja2呈現在後端的模板(或任何你」重新使用)模板。你需要顯示你已經嘗試了什麼,以及你遇到了什麼具體問題以獲得更多幫助。 –

回答

2

根據您提供的信息,有兩種方式爲你做到這一點。

1)使用JavaScript(或JS庫,如jQuery)從您的網頁從服務器獲取JSON對象。此選項最符合您的問題,因爲您正在爲content-type響應標題使用application/json值。但是,您還需要序列化Python字典的JSON兼容的字符串使用json module像這樣:

self.response.out.write(json.dumps(obj)) 

2)渲染JSON對象到您的網頁爲可被JavaScript讀取的變量。這與您提供的代碼最不兼容,因爲您仍然會呈現HTML頁面,但其中的一部分會包含與JSON兼容的字符串。它看起來像下面這樣:

self.response.headers['content-type'] = 'text/html' 

response_body = """ 
<html> 
<script>(function() { 
    yourJsonParseFn("%s"); 
}())</script> 
</html> 
""" % json.dumps(obj) 

self.response.out.write(response_body) 

無論哪種方式,你最終會提供JSON對象到您的網頁JavaScript的處理。

+0

感謝分享答案..完美的作品.. – Raghu

+0

太棒了!不要忘記標記這個答案是正確的,以便其他人可以參考它。 – erichiggins