Работал ли с транзакциями

Python Middle Без компании
Работал ли с транзакциями
Ответы
Да, работал с транзакциями в контексте баз данных. В Python чаще всего использую транзакции при работе с ORM (например, SQLAlchemy) или напрямую через DB-API (psycopg2 для PostgreSQL, sqlite3 и т.д.). Основные принципы: - ACID (атомарность, согласованность, изолированность, долговечность) - Использование `commit()` и `rollback()` - Контекстные менеджеры для автоматического управления Пример с SQLAlchemy: ``` from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker engine = create_engine('sqlite:///mydb.db') Session = sessionmaker(bind=engine) try: session = Session() # Операции внутри транзакции session.add(some_object) session.commit() except Exception as e: session.rollback() print(f"Error: {e}") finally: session.close() ``` Пример с psycopg2: ``` import psycopg2 conn = psycopg2.connect("dbname=test user=postgres") try: with conn: with conn.cursor() as cursor: cursor.execute("INSERT INTO table VALUES (%s)", (value,)) # Автоматический commit при успехе или rollback при ошибке except Exception as e: print(f"Transaction failed: {e}") finally: conn.close() ```