【问题标题】:How to get multiple items from the same field - Flask MySQL如何从同一字段中获取多个项目 - Flask MySQL
【发布时间】:2020-08-15 17:13:45
【问题描述】:

我正在用 Flask 和 MySQL 做一个小应用程序。我正在尝试在表格中显示某些项目,但我想仅根据数据库的 1 个字段过滤这些项目。

这个例子正在做我需要的,但前提是我的列表有 2 个项目。这个想法是我可以将它与“n”个项目一起使用:

@app.route('/search2', methods=['GET', 'POST']) 
def search2():
    if request.method == 'POST': 
        contents= request.form['referencias']
        list_values = contents.split(" ")
        cursor.execute("SELECT * from ref_stocks WHERE Ref_Prod IN (%s,%s)", (list_values[0],list_values[1]))
        conn.commit()
        data = cursor.fetchall()
        return render_template('search2.html', data=data)
    return render_template('search2.html')

我终于找到了办法。也许它可以帮助其他有同样问题的人:

def convert(lista_ref): 
    return tuple(i for i in lista_ref) 


def search2():
    if request.method == 'POST': 
        contents= request.form['referencias']
        # convert to list
        list_values = contents.split(" ")
        # Items in list

        number_list= len(list_values)
        # convert to tuple
        lista_ref = list_values

        lista_nueva = convert(lista_ref)

        #concatenating values
        art = ("%s," * number_list)[:-1]
        where_in = "(" + art + ")"

        cursor.execute("SELECT * from ref_stocks WHERE PrimeroDeRef_Prod IN " + where_in, lista_nueva)

        conn.commit()
        data = cursor.fetchall()

        return render_template('search2.html', data=data)
    return render_template('search2.html')

【问题讨论】:

    标签: flask flask-mysql


    【解决方案1】:

    如果您需要按一个字段进行过滤,请点击此处

     cursor.execute("SELECT * from ref_stocks WHERE Ref_Prod IN (%s)",(list_values[0]))
    

    【讨论】:

    • 谢谢帝尻!不幸的是,我试图找到一种灵活的方式,我可以按一个、两个、三个、x 个项目进行过滤......这取决于我可以在列表中拥有的项目数量......
    猜你喜欢
    • 2019-03-06
    • 2023-01-27
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 2018-01-20
    • 2014-02-21
    相关资源
    最近更新 更多