我试图找到一种方法,让Flask的消息弹出而不必重定向页面。基本上,如果您输入一些匹配的助记模式,它将搜索数据库并在搜索栏下方的警报中显示它。你知道吗
我已经尝试完全删除重定向,但这使它无法正常工作。你知道吗
将用户带到URL的javascript:
function search() {
var searchString = $("#inputSearch").val();
if (searchString.length == 4 && searchString.match(mnemonicPattern)) {
$.get("search/" + searchString, function () {
goToURL("search/"+searchString);
labCatalog.search(searchString, true, false).draw();
});
}
else if (searchString.length >= 6 && searchString.match(oracleNumberPattern)) {
$.get("search/" + searchString, function (data) {
goToURL("search/"+searchString);
labCatalog.search(searchString, true, false).draw();
});
}
else {
labCatalog.search(searchString).draw();
}
}
从数据库获取数据的搜索函数:
@app.route('/search/<string:id_data>',methods=['GET'])
def search(id_data):
cur = mysql.connection.cursor()
cur.execute("SELECT * FROM sims WHERE mnemonic=%s", [id_data])
result = cur.fetchall()
cur.close()
for match in result:
message = "Mnemonic: " + str([match[0]]) + ' Description:
+ str([match[1]]) + ' RFT Date: ' + str([match[2]])
flash(message)
return redirect(url_for('Index'))
我只想弹出flash消息,而不必使用localhost/search/mnemonicpattern重定向。你知道吗
您需要两个更改—一个在客户端显示警报框,另一个在服务器端返回数据。你知道吗
1)客户端变更
至
2)服务器端变更
至
如果结果中有多个匹配项,则上述更改将只发送最后一个匹配项。如果要将所有匹配项组合在一个字符串中发送给客户端以在警报中显示,则可能需要使用“message+=”而不是“message=”
相关问题 更多 >
编程相关推荐