2015-09-05 69 views
-1

我正在爲構建我的第一個python瓶web應用程序做一些基礎工作。我已經整理出了服務器端需要的大部分細節,但是我在如何在客戶端實現這些東西時幾乎沒有問題。如何將AJAX數據綁定到Flask Python應用程序?

我的應用程序將成爲一個單頁面應用程序,根據用戶操作動態填充數據。

說的是,我有一個名爲index.html的模板,在模板的左側有一個菜單選項,右側有一個表格結構。當用戶從菜單中選擇一個選項時,我會從客戶端發送一個AJAX請求到服務器,並且應用程序路徑返回一個JSON響應。

這是我的問題所在。我知道如何填寫表中的數據時,渲染page.I可以使用

render_template('index.html',tabledata = tabledata) 

在我的服務器端在我的客戶端發送的表數據,並使用

{% for data in tabledata %} 
<tr> data </tr> 
{% endfor %} 

,我可以使用代碼如上。

但是因爲我打算使用AJAX請求,所以我不知道如何填充已經渲染的燒瓶模板中的AJAX請求返回的表數據。

我搜索了答案,我發現我必須使用Javascript動態地構建表格。但我想知道有沒有更好的方法來填寫模板?我試圖避免使用JavaScript構建html表格。

感謝

+0

你想通過AJAX獲取呈現的表嗎?或者你想獲取JSON並構建表客戶端? –

+0

Flask與您的客戶端Javascript代碼無關。一旦模板被呈現,瀏覽器就會看到HTML,CSS和Javascript。 –

+0

您的AJAX調用當然可以從Flask服務器加載整個HTML表,只需要讓另一個端點生成輸出,而不是客戶端要呈現爲HTML的JSON。 –

回答

0

如果你想使用使用AJAX的數據填充一個表,它的一般建議使用JSON的API端點(通過插入HTML到DOM中添加一個XSS到您的網站是一個壞主意)。你可以通過簡單地返回字典(you shouldn't ever return JSON lists from an endpoint),像這樣做:

@app.route("/some/url") 
def route(): 
    return flask.jsonify(**{"a": "dict", "returned": "becomes", "a": "JSON object"}) 

然後可以使用AJAX來獲取對象和使用JavaScript來填充你的表。您應該注意,Flask與客戶端代碼無關(除了向客戶端提供服務外)。

相關問題