День 31. Базы данных и SQL: хранение и извлечение данных
Добро пожаловать в 31-й день нашего 90-дневного путешествия по изучению ядра Python! Вчера мы отметили завершение 30-дневного обучения, изучая многопоточность и многопроцессорность для одновременного выполнения. Сегодня мы углубимся в базы данных и SQL, необходимые навыки для работы с хранением и поиском данных. Давайте начнем!
Введение в базы данных и SQL
Базы данных — это структурированный способ хранения, управления и извлечения данных. SQL (язык структурированных запросов) — это предметно-ориентированный язык, используемый для взаимодействия с базами данных. Python предоставляет различные библиотеки для работы с базами данных, такие как SQLite и SQLAlchemy.
Использование SQLite в Python
SQLite — это легкий бессерверный движок базы данных. Взаимодействовать с SQLite можно с помощью встроенного модуля sqlite3
:
import sqlite3 # Connect to the database (create if not exists) conn = sqlite3.connect('my_database.db') # Create a cursor cursor = conn.cursor() # Create a table cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, username TEXT, email TEXT ) ''') # Insert data cursor.execute(''' INSERT INTO users (username, email) VALUES (?, ?) ''', ('alice', '[email protected]')) # Commit changes and close the connection conn.commit() conn.close()
Получение данных из базы данных
Чтобы получить данные из базы данных, используйте оператор SELECT
:
conn = sqlite3.connect('my_database.db') cursor = conn.cursor() cursor.execute('SELECT * FROM users') rows = cursor.fetchall() for row in rows: print(row) conn.close()
Использование SQLAlchemy
SQLAlchemy — это мощная библиотека ORM (объектно-реляционного сопоставления), которая обеспечивает интерфейс более высокого уровня для баз данных. Он абстрагирует операции с базой данных, делая взаимодействие с базой данных более Pythonic:
from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) username = Column(String) email = Column(String) engine = create_engine('sqlite:///my_database.db') Base.metadata.create_all(engine) Session = sessionmaker(bind=engine) session = Session() new_user = User(username='bob', email='[email protected]') session.add(new_user) session.commit() users = session.query(User).all() for user in users: print(user.username, user.email) session.close()
Заключение
Поздравляем с завершением 31-го дня нашего путешествия по изучению Python! Сегодня мы изучили базы данных и SQL, необходимые навыки хранения и поиска данных. Мы научились взаимодействовать с базами данных с помощью SQLite и SQLAlchemy.
Уделите некоторое время практике создания, вставки и извлечения данных из баз данных в ваших проектах Python. Завтра, в день 32, мы углубимся в веб-разработку с помощью Flask, популярного веб-фреймворка.
Продолжайте в том же духе, и давайте продолжим путь обучения! 🚀
Примечание. Эта запись в блоге является частью 90-дневной серии обучения основам программирования на Python с нуля. Все предыдущие дни вы можете найти в индексе серии здесь.