Flask中的自动完成jQuery返回空列表

我正在尝试在烧瓶中获取自动完成功能,

这是html页面中的JS,它具有自动填充输入字段

$(function() {
    $("#autocompletes").autocomplete({
        source:function(request, response) {
            $.getJSON("{{url_for('autocomplete')}}",{
                q: request.term, // in flask, "q" will be the argument to look for using request.args
            }, function(data) {
                response(data.matching_results); // matching_results from jsonify

            });
        },

        minLength: 3,
        delay: 200,
        select: function(event, ui) {
            console.log(ui.item.value); // not in your question, but might help later
        }
    });
})

这是Ajax请求调用的函数,

@app.route('/autocomplete', methods=['GET'])
def autocomplete():
    search = request.args.get('q')
    results = getComplete(search)
    return jsonify(matching_results=results)

这是查询数据库并返回结果列表的函数,

def getComplete(search):

  sql = "SELECT itemId FROM Database where itemId like '%" + str(search) + "%'"
  result = pd.read_sql_query(sql,cnxn).values.tolist()
  return result

实际上,当我在输入字段中键入内容时,自动完成功能可以正常工作,在开发工具的网络部分,我可以看到正在打印的itemid列表,如下所示:

{matching_results:[[“ Pippo”]]} matching_results:[[“ Pippo”]]

但是建议列表仅显示空着的选择..有什么建议吗?我认为格式是错误的,但是我真的不知道如何正确格式化,人们说JSON必须包含一个{value:__,label:__} dict,但是我怎么能做到这一点(如果那是问题)?

评论