Работа с SQLite в Python — встроенная реляционная БД без сервера!
Для небольших сервисов, скриптов, утилит и локальных инструментов отлично подходит SQLite — встроенная реляционная БД. Python поддерживает SQLite из коробки через модуль
sqlite3.Подключаемся к базе данных (если файла нет — он будет создан автоматически) и используем контекстный менеджер.
При нормальном выходе он выполнит
commit, а при исключении — rollback, после чего корректно закроет соединение:import sqlite3
with sqlite3.connect("users.db") as conn:
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER
)
""")Добавим данные:
users = [
("Alice", 30),
("Bob", 25),
("Charlie", 35)
]
cursor.executemany(
"INSERT INTO users (name, age) VALUES (?, ?)",
users
)? — плейсхолдер параметров в SQL-запросе. Он обеспечивает безопасную передачу значений в запрос и защищает от SQL-инъекций при работе с данными.
Чтение данных:
cursor.execute("SELECT id, name, age FROM users")
for row in cursor.fetchall():
print(row)Обновление и удаление записей — стандартные CRUD-операции с использованием параметризованных SQL-запросов
cursor.execute(
"UPDATE users SET age = ? WHERE name = ?",
(31, "Alice")
)
cursor.execute(
"DELETE FROM users WHERE name = ?",
("Bob",)
)SQLite — отличный инструмент для практики SQL, хранения конфигураций, кэша и небольших объёмов данных.
Python Ready | #практика