javascript - 使用 SQLite 和 Flask 搜索自动完成

标签 javascript jquery python sqlite flask

我环顾四周,似乎找不到一个好的解决方案。我有一个简单的 SQLite DB,其中包含电子产品,并且有一个搜索框,您可以在其中输入产品名称来搜索它。但我想使用自动完成功能,以便用户能够看到与他们正在输入的内容相关的所有产品。

(即,如果他们输入“EOS”,则会有一个小下拉菜单,向他们显示所有带有 EOS 字母的产品,他们可以选择他们想要的产品)

我已经看到 Ajaxx 有一个自动完成功能,但我找不到关于如何在我的应用程序中正确实现它的良好说明(我对编程还很陌生,只有大约 4 个月)。

最佳答案

jQueryUI 将是实现这一点的最快方法。这确实是一个 Javascript 问题,但我会为您提供一些使用 Flask 实现此问题的技巧。

在您的 View 函数中创建基于数据库的产品列表,例如:

def index():
    products = [row.product for row in Products.query.all()]
    return render_template('index.html', products=products)

然后,在您的 HTML/Javascript 中使用以下 Jinja2 语法和过滤器将列表从 Python 转换为 Javascript 可以使用的内容(来自 jQueryUI Docs ):

<script>
$( function() {
    var availableTags = {{ products|tojson|safe }};
    $( "#tags" ).autocomplete({
        source: availableTags
    });
} );
</script>

除了此代码以及 jQuery UI 样式 CSS 之外,您显然还需要构建并包含适当的 jQuery UI 源 JavaScript 文件。

关于javascript - 使用 SQLite 和 Flask 搜索自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40851002/

相关文章:

Javascript:替换 element.src 属性中的字符串

javascript - 叠加层可通过其前面的元素点击

javascript - 添加涉及 PHP 的 onclick jQuery 输入

python - 函数逼近Tensorflow

python - 使用 Python 订阅模式 Redis

javascript - 在jquery中将元素置于焦点之下

javascript - 使用 JavaScript 创建 Firebase 动态链接

javascript - 动态多列布局

python - 将所有列除以 Pandas 中的每一列

javascript - OpenLayers 没有在我的 map 上添加标记