代码之家  ›  专栏  ›  技术社区  ›  nyvokub

将参数传递给torndb.query()

  •  0
  • nyvokub  · 技术社区  · 8 年前

    我在尝试使用 torndb.query(query, *parameters, **kwargs)

    query = """
    SELECT *
    FROM students
    WHERE name LIKE "%s"
    AND score LIKE "%s"
    """
    
    parameters = ["Jack", "A"]
    students = db.query(query, parameters)
    

    尽管在直接运行原始查询时,即使mySQL数据库中有匹配项,此查询也不会返回任何内容->

    SELECT *
    FROM students
    WHERE name LIKE "Jack"
    AND score LIKE "A
    

    我想知道如何使用 parameters torndb.query() 函数,我知道可以通过格式化实际的查询字符串来完成此操作,但这不是我的目标。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Ben Darnell    8 年前

    query() 每一个都有一个参数 %s 在查询字符串中:

    db.query(query, "Jack", "A")
    

    您将它们作为单个列表对象传递。要让Python将列表扩展为单独的参数,请在列表前面加上星号:

    db.query(query, *parameters)