使用AJAX通过从csv文件(Python / Flask)读取的信息更新动态div

时间:2017-02-28 17:09:21

标签: javascript jquery python ajax flask

我需要使用Python / Flask从csv文件获取的信息更新动态div的内容。我不能附上我的完整代码,因为它很长,但这里是问题的摘要。 我正在使用正常的csv读取例程,然后使用Flask提供它:

@app.route('/myStuff', methods=['GET', 'POST'])
def myStuff():        
    with open('static/databases/myData.csv', 'rb') as n:
        reader = csv.reader(n, delimiter=",")
        counter = len(myDatabase)
        myDatabase = list(reader)
        myIds = [col[1] for col in myDatabase]

然后,在我的myStuff.html我有一个父母div被喂食:

<div id="myDiv"></div>

稍后,我会像这样调用csv数据:

var myDatabase = {{ myDatabase|safe }};
var counter = {{ counter|safe }};

然后,使用javascript我根据csv数据的长度在myDiv中生成一些div:

for(var i = 1; i < counter; i++) {
    $('#myDiv').append('<div>' + myIds[i] + '</div>');
};

并行我有一些例程来修改csv文件(特别是项目数),我希望它们能够在不重新加载完整的html时进行更新。我试过在我的html中添加一个按钮:

<button type="button" id="myButton" >Reload</button>

然后使用jQuery的简单函数在html中重新加载myDiv:

$('#myButton').on('click', function() {
    $('#myDiv').load('/myStuff.html');
});

但似乎没有任何重新加载。我对这种例程很新,而且我还没有找到任何使用Python / Flask处理相同类型数据(csv)的教程或示例。任何帮助都将非常感激。

编辑: 感谢@caisah我设法使用AJAX重新加载数据,但我遇到了一个新问题。我只需要重新加载#myDiv的子项,并且我现在拥有的代码已经在#myDiv容器中重新加载了完整的html:

$('#myButton').on('click', function() {
    $('#myDiv').load('/myStuff');
});

我尝试使用以下方式指向内容:

$("#myDiv").load(location.href + " #myDiv");

@ Peca回答this问题之后,只有父div(而不是孩子)被重新加载。关于如何实现这一目标的任何提示?

0 个答案:

没有答案