8. (П4) Обробка помилок і транзакції¶
Передумови¶
- Запущений PostgreSQL (інструкція запуску через Docker)
Завдання¶
Написати Python-програму для управління банківськими рахунками з використанням обробки помилок та транзакцій.
Крок 1. Створення таблиці та початкових даних¶
Створити таблицю accounts та заповнити її початковими даними:
CREATE TABLE IF NOT EXISTS accounts (
id SERIAL PRIMARY KEY,
owner VARCHAR(100) NOT NULL,
balance NUMERIC(12, 2) NOT NULL DEFAULT 0,
CHECK (balance >= 0)
);
Додати мінімум 3 рахунки з початковим балансом (наприклад, 1000, 500, 200).
Крок 2. Обробка помилок підключення¶
Програма повинна коректно обробляти помилки підключення до БД — виводити зрозуміле повідомлення без traceback:
Крок 3. Функція переказу коштів¶
Реалізувати функцію transfer(conn, from_id, to_id, amount), яка:
- Переказує кошти з одного рахунку на інший в одній транзакції
- Використовує контекстний менеджер
with conn:для автоматичного commit/rollback - Обробляє такі помилки:
- Рахунок не знайдено → зрозуміле повідомлення
- Недостатньо коштів → зрозуміле повідомлення
psycopg2.IntegrityError(порушення CHECK) → зрозуміле повідомлення
Крок 4. Вивід стану рахунків¶
Реалізувати функцію, яка виводить поточний стан усіх рахунків у форматі:
Банківська система — <Ваші ім'я та прізвище>
ID | Власник | Баланс
1 | Олена | 850.00
2 | Тарас | 600.00
3 | Марія | 250.00
Крок 5. Command line інтерфейс¶
Програма повинна підтримувати command line аргументи:
transfer <from_id> <to_id> <amount>— переказ коштівstatus— вивід стану всіх рахунків (з іменем студента)
Знайшли помилку чи бажаєте додати інформацію, щоб покращити курс? Створіть issue на GitHub