Panduan Ultimate SQLAlchemy Python: Rahsia untuk Bermain dengan Pangkalan Data Hubungan

王林
Lepaskan: 2024-02-25 09:46:16
ke hadapan
338 orang telah melayarinya

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

1. Pertemuan sqlAlkimia: Mulakan pangkalan dataperjalanan

SQLAlchemy ialah python ORM (pemetaan relasi objek) yang berkuasa untuk menyambungkan Python kod dan relasi pangkalan data Pembangun boleh menukar operasi data yang lebih kompleks kepada pembangun. logik sambil mempunyai kawalan penuh ke atas struktur pangkalan data.

1 Pengenalan pertama kepada SQLAlchemy: pemasangan dan konfigurasi

# 安装 SQLAlchemy
pip install sqlalchemy

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

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

2 Tentukan model: bina struktur pangkalan data

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

# 创建表
User.metadata.create_all(engine)
Salin selepas log masuk

2. Kawal data: tambah, padam, semak dan ubah suai

1. Masukkan data: isikan pangkalan data

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

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

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

# 关闭会话
session.close()
Salin selepas log masuk

2. Data pertanyaan: ekstrak apa yang anda perlukan

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

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

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

# 关闭会话
session.close()

# 打印查询结果
print(users)
print(user)
Salin selepas log masuk

3. Kemas kini data: ubah suai sedia ada

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

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

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

# 关闭会话
session.close()

# 打印更新后的数据
print(user)
Salin selepas log masuk

4. Padamkan data: Padam yang tidak diperlukan

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

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

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

# 关闭会话
session.close()

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

3. Pemodelan Perhubungan: Menggariskan Persatuan Data

1. Hubungan satu dengan ramai: membina hierarki

# 定义父模型
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()
Salin selepas log masuk

2. Hubungan ramai-ke-banyak: menghubungkan persatuan yang kompleks

# 定义模型
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()
Salin selepas log masuk

4. Amalan:

ProjekAplikasi

1. Sistem blog: simpan artikel dan komen

2. Sistem e-dagang: menguruskan produk dan pesanan

3. Platform sosial: membina hubungan pengguna dan sistem pemesejan

Kesimpulan

SQLAlchemy membuka jalan yang mudah ke pangkalan data hubungan untuk kami. Ia bukan sahaja memudahkan operasi data, tetapi juga menyediakan keupayaan pemodelan perhubungan yang fleksibel, menjadikan pengurusan data lebih mudah dan lebih cekap. Saya harap panduan ini dapat memberi inspirasi kepada anda dalam perjalanan SQLAlchemy anda dan membantu anda mengembara beribu-ribu batu dalam dunia data.

Atas ialah kandungan terperinci Panduan Ultimate SQLAlchemy Python: Rahsia untuk Bermain dengan Pangkalan Data Hubungan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:lsjlt.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan