Передача параметров в torndb.query ()

0

У меня есть соединение с базой данных, установленное в python с использованием torndb.

У меня возникают проблемы с запросом, используя 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 arg в функции torndb.query(), я знаю, что вы можете сделать это, форматируя фактическую строку запроса, но это не моя цель.

Теги:
tornado
formatting

1 ответ

0
Лучший ответ

query() принимает один аргумент для каждого %s в строке запроса:

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

Вы передаете их как единый объект списка. Чтобы Python расширил список на отдельные параметры, поставьте перед ним звездочку:

db.query(query, *parameters)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню