【问题标题】:Materialize CSS Autocomplete using Flask and MySQL使用 Flask 和 MySQL 实现 CSS 自动完成
【发布时间】:2017-04-12 17:43:33
【问题描述】:

我想做的是使用 Materialize CSS 创建一个具有自动完成功能的搜索栏。我正在使用一个简单的数组。工作代码:

<input type="text" placeholder="search" id="autocomplete-input" class="autocomplete" >

<script>
$(document).ready(function () {
$('input.autocomplete').autocomplete({
    data: {
        "Dog": null,
        "Bear": null,
        "Bull": null,
        "Cat": null
    }
});
});
</script>

我想做的不是在我的脚本中使用数组来使用 Flask 返回我的 MySQL 数据库。我一直在尝试一些烧瓶路线,但没有运气。

@app.route('/autocomplete', methods=['POST', 'GET'])
def autocomplete():
if request.method == 'POST':
    query = request.form['query']
    try:

        with db.cursor() as cursor:
            sql = "SELECT short_name, name FROM table WHERE name LIKE %s"
            cursor.execute(sql('%' + query + '%'))
            result = cursor.fetchall()
    finally:
        a = 2
        return render_template("results.html", search_result=result)
else:

    return "ooops"

有人知道这是否可能吗?

【问题讨论】:

  • 您想要的预期结果是“当用户键入然后对flask后端进行post调用并获得相关结果时”对吗?
  • @Pradeepb 没错。 minimal reproducible example (icefox0801.github.io/materialize-autocomplete/examples) 但是我只想查询 MySQL 数据库。
  • 我查了很多,找不到具体化 CSS 是否支持自动完成的 ajax 调用。我会建议使用 jquery-UI 自动完成功能(我在一个项目中使用过它并且它工作完美)
  • @Pradeepb 你有可以分享的例子吗?

标签: jquery python mysql flask materialize


【解决方案1】:

以下示例使用Jquery-UI。在您的 HTML 文件中包含 this

$(document).ready(function(){
        $('input.autocomplete').autocomplete({
            source: function (request, response) {
                $.ajax('/autocomplete', {
                    'method': 'GET',
                    'data': request
                }).done(function (data) {
                    response(data['items']);
                }).fail(function () {
                    console.log('fail');
                });
            },
            minLength: 3, // minimum Length of characters
        });
    });

【讨论】:

  • 谢谢,我在代码的烧瓶部分收到 TypeError: must be str, not NoneType。你有没有 Python/flask 代码的例子?
  • 这里是mine 我得到“cursor.execute(sql, ('%' + search + '%')) TypeError: must be str, not NoneType"
  • 检查值是否从前端传递到后端
  • 对您有帮助吗?
  • 我无法检查,因为我在项目运行时遇到错误。当我尝试传递输入时,我基本上没有得到任何响应
猜你喜欢
  • 2019-03-07
  • 2018-01-08
  • 1970-01-01
  • 2017-04-12
  • 1970-01-01
  • 2016-06-23
  • 2018-06-27
  • 2013-01-12
  • 1970-01-01
相关资源
最近更新 更多