Heim >Backend-Entwicklung >Python-Tutorial >Python SQLAlchemy Ultimate Guide: Geheimnisse beim Spielen mit relationalen Datenbanken

Python SQLAlchemy Ultimate Guide: Geheimnisse beim Spielen mit relationalen Datenbanken

王林
王林nach vorne
2024-02-25 09:46:16373Durchsuche

Python SQLAlchemy 终极攻略:玩转关系数据库的秘诀

1. Begegnung mit sqlAlchemy: Starten Sie die DatenbankReise

SQLAlchemy ist ein leistungsstarkes Python ORM (Object Relational Mapping) Tool zur Verbindung von Python-Code und relationaler Datenbank. Es kann komplexe Datenoperationen in einfache Python-Syntax umwandeln, sodass Entwickler sich mehr auf das Geschäft konzentrieren können Logik und haben gleichzeitig die vollständige Kontrolle über die Datenbankstruktur. 1. Erste Einführung in SQLAlchemy: Installation und Konfiguration

# 安装 SQLAlchemy
pip install sqlalchemy

# 导入 SQLAlchemy
from sqlalchemy import create_engine, Column, Integer, String, Table

# 创建数据库引擎
engine = create_engine("sqlite:///database.db")

2. Definieren Sie das Modell: Erstellen Sie die Datenbankstruktur

# 定义模型类,代表数据库中的表
class User(object):
__tablename__ = "user"
id = Column(Integer, primary_key=True)
name = Column(String(50))
email = Column(String(50))

# 创建表
User.metadata.create_all(engine)

2. Kontrolldaten: hinzufügen, löschen, prüfen und ändern

1. Daten einfügen: Datenbank füllen

# 创建会话
session = Session(bind=engine)

# 插入数据
new_user = User(name="张三", email="zhangsan@example.com")
session.add(new_user)

# 提交事务,使数据持久化
session.commit()

# 关闭会话
session.close()

2. Daten abfragen: Extrahieren Sie, was Sie brauchen

# 创建会话
session = Session(bind=engine)

# 查询所有数据
users = session.query(User).all()

# 查询特定数据
user = session.query(User).filter(User.name == "张三").first()

# 关闭会话
session.close()

# 打印查询结果
print(users)
print(user)

3. Daten aktualisieren: Vorhandene ändern

# 创建会话
session = Session(bind=engine)

# 更新数据
user = session.query(User).filter(User.name == "张三").first()
user.email = "zhangsan@new_example.com"

# 提交事务,使数据持久化
session.commit()

# 关闭会话
session.close()

# 打印更新后的数据
print(user)

4. Daten löschen: Unnötige löschen

# 创建会话
session = Session(bind=engine)

# 删除数据
user = session.query(User).filter(User.name == "张三").first()
session.delete(user)

# 提交事务,使数据持久化
session.commit()

# 关闭会话
session.close()

# 打印删除后的数据
print(session.query(User).all())

3. Beziehungsmodellierung: Datenassoziationen skizzieren

1. Eins-zu-viele-Beziehung: Aufbau einer Hierarchie

# 定义父模型
class Parent(object):
__tablename__ = "parent"
id = Column(Integer, primary_key=True)
name = Column(String(50))

# 定义子模型
class Child(object):
__tablename__ = "child"
id = Column(Integer, primary_key=True)
name = Column(String(50))
parent_id = Column(Integer, ForeignKey("parent.id"))

# 创建表
Parent.metadata.create_all(engine)
Child.metadata.create_all(engine)

# 创建数据
parent = Parent(name="王五")
child1 = Child(name="小红", parent_id=parent.id)
child2 = Child(name="小明", parent_id=parent.id)

# 提交事务,使数据持久化
session = Session(bind=engine)
session.add_all([parent, child1, child2])
session.commit()

# 关闭会话
session.close()

2. Viele-zu-viele-Beziehung: Verbindung komplexer Zusammenhänge

# 定义模型
class Student(object):
__tablename__ = "student"
id = Column(Integer, primary_key=True)
name = Column(String(50))

class Course(object):
__tablename__ = "course"
id = Column(Integer, primary_key=True)
name = Column(String(50))

# 定义关联表
student_course = Table("student_course",
Column("student_id", Integer, ForeignKey("student.id")),
Column("course_id", Integer, ForeignKey("course.id")))

# 创建表
Student.metadata.create_all(engine)
Course.metadata.create_all(engine)
student_course.create(engine)

# 创建数据
student1 = Student(name="李四")
student2 = Student(name="赵六")
course1 = Course(name="数学")
course2 = Course(name="语文")

# 提交事务,使数据持久化
session = Session(bind=engine)
session.add_all([student1, student2, course1, course2])
session.commit()

# 建立关联
student1.courses = [course1, course2]
student2.courses = [course1]

# 提交事务,使关联持久化
session.commit()

# 关闭会话
session.close()

4. Übung:

Projekt

Anwendung 1. Blog-System: Artikel und Kommentare speichern

2. E-Commerce-System: Produkte und Bestellungen verwalten

3. Soziale Plattform: Aufbau einer Benutzerbeziehung und eines Nachrichtensystems

Fazit

SQLAlchemy eröffnet uns einen bequemen Weg zu relationalen Datenbanken. Es vereinfacht nicht nur Datenoperationen, sondern bietet auch flexible Beziehungsmodellierungsfunktionen, wodurch die Datenverwaltung einfacher und effizienter wird. Ich hoffe, dieser Leitfaden kann Sie auf Ihrer SQLAlchemy-Reise inspirieren und Ihnen dabei helfen, Tausende von Kilometern in der Welt der Daten zurückzulegen.

Das obige ist der detaillierte Inhalt vonPython SQLAlchemy Ultimate Guide: Geheimnisse beim Spielen mit relationalen Datenbanken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lsjlt.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen