Экранирование динамического запроса sqlite?

В настоящее время я строю запросы SQL в зависимости от ввода пользователя. Пример того, как это делается, можно увидеть здесь:

def generate_conditions(table_name,nameValues):
    sql = u""
    for field in nameValues:
        sql += u" AND {0}.{1}='{2}'".format(table_name,field,nameValues[field])
    return sql

search_query = u"SELECT * FROM Enheter e LEFT OUTER JOIN Handelser h ON e.Id == h.Enhet WHERE 1=1"

if "Enhet" in args:
    search_query += generate_conditions("e",args["Enhet"])
c.execute(search_query)

Поскольку SQL меняется каждый раз, я не могу вставить значения в вызов выполнения, что означает, что я должен экранировать строки вручную. Тем не менее, когда я ищу все указывает на выполнение ...

Я также не очень доволен тем, как я генерирую запрос, поэтому, если у кого-то есть идеи о другом способе, это тоже было бы здорово!

Ответы на вопрос(1)

Ваш ответ на вопрос