← До списку лабораторних по Python
Повний опис / сценарій лабораторної:
Meta: навчитися працювати з вбудованою базою SQLite для невеликих сервісів і утиліт.
Krok 1. Створити файл src/app/db12.py.
Komandi: cd ~/python_lab1/src; touch app/db12.py
Krok 2. Додати код створення таблиці users.
Komанда: printf "import sqlite3
from pathlib import Path
DB_PATH = Path("lab12.db")
def init_db():
conn = sqlite3.connect(DB_PATH)
cur = conn.cursor()
cur.execute("create table if not exists users(id integer primary key, name text, email text)")
conn.commit()
conn.close()
if __name__ == "__main__":
init_db()
" > app/db12.py
Krok 3. Запустити скрипт і перевірити наявність файлу бази.
Komandi: export PYTHONPATH=$(pwd); python app/db12.py; ls lab12.db
Krok 4. Додати функцію insert_user.
Komanda: printf "import sqlite3
from pathlib import Path
DB_PATH = Path("lab12.db")
def init_db():
conn = sqlite3.connect(DB_PATH)
cur = conn.cursor()
cur.execute("create table if not exists users(id integer primary key, name text, email text)")
conn.commit()
conn.close()
def insert_user(name: str, email: str):
conn = sqlite3.connect(DB_PATH)
cur = conn.cursor()
cur.execute("insert into users(name, email) values(?, ?)", (name, email))
conn.commit()
conn.close()
if __name__ == "__main__":
init_db()
insert_user("Taras", "taras@example.com")
" > app/db12.py
Krok 5. Запустити оновлений скрипт.
Komанда: python app/db12.py
Krok 6. Додати функцію get_all_users.
Poyasnennya: використовуй fetchall і поверни список словників або кортежів.
Krok 7. Додати main який викликає init_db, insert_user кілька разів і друкує результат get_all_users.
Krok 8. Перевірити що записів не дублюються при повторному запуску, додавши просту перевірку.
Poyasnennya: можна очищати таблицю перед тестом.
Krok 9. Занотувати правила використання параметрів ? для захисту від SQL інʼєкцій.
Krok 10. Mini zvit.
Zavdannya: опиши сценарій де SQLite достатньо для прод рішення у твоїй практиці.