python flask cursors.execute() из INSERT и DELETE не работает

Я новичок в разработке на Python и пытаюсь обновить базу данных с помощью следующей функции, но, к сожалению, она не работает:

def db_update_favourite(user_id, id_layer,favourite):
    connection = g.db
    cursor = connection.cursor()
    cursor.execute(SCHEMA)
    chiave="favourite_layers";

    if(favourite):
        query = ("""INSERT INTO users_properties (id_user,chiave,index,val_bigint)
                VALUES(%s,%s,(SELECT max(index)+1 from users_properties),%s)
            """)
    else:
        query = ("""DELETE FROM users_properties
                WHERE  id_user=%s AND chiave=%s AND val_bigint=%s
            """)


    print query %(user_id,chiave,id_layer)
    try:
        res= cursor.execute(query, (user_id,chiave,id_layer))
    except Exception as e:
        print e
    print res
    print cursor.rowcount
    return cursor.rowcount>=1

Если я иду и проверяю базу данных, я вижу, что эта функция не изменила базу данных вообще.

Если вместо этого я попробую два запроса вручную с помощью psql, они будут работать как положено.

Как видите, я пытался отладить, но res - это None, исключение не сработало, а rowcount всегда равно 1.

Есть другие методы, которые выполняют похожие запросы, и все они работают. Что это может быть? Любые другие идеи о том, как продолжить его отладку, в противном случае?

PS Я использую pg8000, потому что сервер не мой, а код, который уже существовал, использует эту библиотеку.

1 ответ

Решение

Использование connection.commit() или же g.db.commit() прежде чем закрыть соединение.

Другие вопросы по тегам