【发布时间】:2015-02-08 05:06:58
【问题描述】:
之前有人问过很多与我类似的问题,我尝试了所有解决方案,但发现没有帮助。
我有一个文本框,需要根据给定的输入将自动完成与从 db 获取的值合并。我在客户端使用javascript,在服务器端使用python。我正在为此活动使用烧瓶框架。
html:
<input type="text" id="auto"/>
javascript:
<script type = "text/javascript">
$(document).ready(function(){
$("#auto").autocomplete({
source: "{{url_for('autocomplete')}}",
minLength: 1
});
});
</script>
蟒蛇:
@app.route('/autocomplete', methods=['GET'])
def autocomplete():
value = request.args.get('term')
sql = "select name from data_table where name like '%"+value+"%'"
conn = sqlite3.connect(DATABASE)
data_list = []
cursor = conn.execute(sql)
for row in cursor:
data_list.append(row[0])
conn.close()
return jsonify(json_list=data_list)
对于在文本框中输入的每个键,都会调用 python 方法。问题是我如何将结果返回给 javascript。每次输入密钥时,都会收到 500 Internal server error。
在自动完成 sn-p 中,如果 source: "{{url_for('autocomplete')}}".json_list 它也会抛出错误。
但如果值在 javascript 端作为数组给出并且不涉及 python 活动,则自动完成工作正常。
感谢任何帮助。提前致谢。
【问题讨论】:
-
我认为您需要打开 DEBUG 模式并查看烧瓶日志/控制台以查看究竟是什么引发了 500 错误。
标签: javascript jquery python autocomplete flask