Запрос с переменной

Я хочу выполнить запрос с переменной

Я пытался сделать это, но не получается

def requeteDB(sql_request):
    with connection.cursor() as cursor:
        cursor.execute(sql_request)
        row = cursor.fetchall()
    return row

def queryWithVar():
    var = 'something with spaces'
    return('''
           Select col1
           From table1
           Where col2 = %s
           ''', [var])

queryWithVar()

('\n Select col1\n From table1\n Where col2 = %s\n ', ['something'])

requeteDB(queryWithVar())

TypeError: аргумент 1 должен быть строкой или объектом юникода: вместо него получен кортеж

>

Проблема в том, что ваша функция возвращает кортеж, поэтому вам нужно распаковать его при передаче результата в метод execute, просто используйте синтаксис *:

def requeteDB(sql_request):
    with connection.cursor() as cursor:
        cursor.execute(*queryWithVar())
        row = cursor.fetchall()
    return row
Вернуться на верх