jQuery autocomplete with python Flask
jQuery autocomplete with python Flask
之前问过许多与我类似的问题,我尝试了所有解决方案,但发现它没有帮助。
我有一个文本框,需要将自动完成与根据给定的输入从数据库获取的值合并。我在客户端使用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 内部服务器错误。
在自动完成代码段中,如果source: "{{url_for('autocomplete')}}".json_list
,它也会抛出错误。
但是,如果在 javascript 端以数组形式给出值并且不涉及 python 活动,则自动完成功能正常。
任何帮助,不胜感激。提前谢谢。
通常,ajax 调用中的 500 错误代码意味着服务器大小的代码本身存在一些问题。我要检查的一件事是,如果没有返回任何行,您将在data_list.append(row[0])
中收到错误,因为行不是列表(可能是 None),并且 row[0] 会失败。
使用 try/except 捕获错误并在客户端处理它(如果返回 None ,javascript 应该什么都不做 - 自动完成应该能够处理来自 ajax 调用的空值,所以你主要需要确保你的服务器端 python 适用于所有输入)。
旁注:不要在每次用户更改输入时都连接/断开与数据库的连接。这是很大的开销。使用 Flask-SQLAlchemy 进行数据库连接管理。它比你上面做的更优雅、更快、对资源的要求更低。
- 调用Javascript中的Python函数,读取静态文件(Flask)
- 让python通过浏览器与本地Flask应用程序对话
- 浏览器同步在使用 Python Flask 时不会刷新浏览器
- 通过Flask将Javascript变量解析为Python
- Python Flask Web服务器未接收到JSON ajax POST请求,服务器返回HTTP 200 OPTION
- 有没有一种安全的方法可以将 React.js 与 Python Flask 后端用于多用户、受密码保护的站点
- 将参数从 Javascript 传递到 flask python 脚本
- Python Flask + 角度错误:“StoreController undefined”
- Python Flask 模板使用 {{}} 不能混合 javascript var
- 如何使用Python Flask应用程序在D3JS图表中动态加载JSON数据
- jQuery autocomplete with python Flask
- AJAX CORS error with Python Flask
- Python Flask 应用程序,AJAX 帖子收到 400 个错误请求
- Flask Python 字符串不返回 Javascript XMLHttpRequest 调用
- Python 文件上传:具有多个其他字段的 Ajax 和 Flask 上传
- 将 Python Flask JSON 字典导入 JavaScript 错误
- 如何使用Python/Flask在heroku中显示index.html页面
- 尝试将Python/flask应用程序部署到Heroku时,未能绑定到$PORT
- 将数据从Python(flask框架)传递到javascript
- 类型错误Ajax后Flask Python