Осторожно, execute
, вторым аргументом должен быть [guid] (список только с одним элементом). Что касается вашего вопроса, я обычно просто использую класс, инкапсулирующий соединение и курсор, но похоже, что вы можете предпочесть использовать контекст выполнения объект, чей метод __enter__
дает вам курсор, пока __leave__
фиксирует или откат в зависимости от того, было ли прекращение нормальным или в порядке исключения; это сделало бы ваш код
def delete_session():
with get_cursor() as cur:
cur.execute(etc etc)
Если вам нравится этот стиль, дайте нам знать, и я покажу вам, как писать get_cursor
. Другие, без сомнения, предложат вместо этого декоратор, поэтому вы должны написать:
@withcursor
def delete_session(cur):
cur.execute(etc etc)
но я думаю, что это делает коммит / откат, среди прочего, немного мрачнее. Тем не менее, если этот является вашим предпочтением, снова дайте нам знать, и я также могу показать вам, как написать эту форму.