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

王林
Freigeben: 2024-02-25 09:46:16
nach vorne
370 Leute haben es durchsucht

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")
Nach dem Login kopieren

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)
Nach dem Login kopieren

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()
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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())
Nach dem Login kopieren

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()
Nach dem Login kopieren

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()
Nach dem Login kopieren

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!

Quelle:lsjlt.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage