gpt4 book ai didi

javascript - Ajax 调用 flask 返回 mysql 查询

转载 作者:行者123 更新时间:2023-11-30 20:21:51 27 4
gpt4 key购买 nike

我试图在我的 HTML 中填充一个下拉列表。我正在从我的 app.js 调用我的 flask 应用程序 app.py 制作一个 AJAX。我试图在页面首次加载并在 $(document).ready 中调用 AJAX 时填充数据,如下所示:

应用程序.js

$(document).ready(function(){
$.ajax({
type: "GET",
url: "http://myserver:5000/query",
//dataType: 'json',
success: function(data) {
console.log("This is the returned data: " + JSON.stringify(data));
},
error: function(error){
console.log("Here is the error res: " + JSON.stringify(error));
}
});
});

当我刷新页面时,我确实看到我的 flask 服务器成功查询了正确的数据库并且我确实看到了正确的返回。但是,在我的 app.js 端,我得到一个空列表。

我在我的 flask 服务器输出中看到了这个:

((1, 'name1'), (2, 'name2'))

但是,在我的 AJAX 控制台中,返回数据只是 []

这是我的 flask app.py:

@app.route('/query', methods=['GET', 'POST'])
def query():
cursor = mysql.connect().cursor()
cursor.execute("SELECT * from names")
print(cursor.fetchall())
return jsonify(cursor.fetchall())

我怀疑 document ready 可能在 flask 取回数据之前运行 ajax 调用。

那么当 flask 查询返回准备就绪时,我如何获取要填充的数据呢?

最佳答案

当您执行 cursor.fetchall() 时,它会获取游标中的所有结果,将其留空。为了使您的代码正常工作,您应该将结果存储在某个变量中:

@app.route('/query', methods=['GET', 'POST'])
def query():
cursor = mysql.connect().cursor()
cursor.execute("SELECT * from names")
res = cursor.fetchall()
print(res)
return jsonify(res)

这应该会如您所愿。

关于javascript - Ajax 调用 flask 返回 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51372184/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com