2015-09-05 74 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与客户端代码无关(除了向客户端提供服务外)。

相关问题