Maison >développement back-end >Tutoriel Python >Python SQLAlchemy Ultimate Guide : les secrets pour jouer avec des bases de données relationnelles
SQLAlchemy est un puissant python ORM (cartographie relationnelle d'objet) permettant de connecter le code Python et la base de données relationnelle. Il peut convertir des opérations de données complexes en une syntaxe Python simple, permettant aux développeurs de se concentrer davantage sur leur activité. logique tout en ayant un contrôle complet sur la structure de la base de données. 1. Première introduction à SQLAlchemy : installation et configuration
# 安装 SQLAlchemy pip install sqlalchemy # 导入 SQLAlchemy from sqlalchemy import create_engine, Column, Integer, String, Table # 创建数据库引擎 engine = create_engine("sqlite:///database.db")2. Définir le modèle : construire la structure de la base de données
# 定义模型类,代表数据库中的表 class User(object): __tablename__ = "user" id = Column(Integer, primary_key=True) name = Column(String(50)) email = Column(String(50)) # 创建表 User.metadata.create_all(engine)
# 创建会话 session = Session(bind=engine) # 插入数据 new_user = User(name="张三", email="zhangsan@example.com") session.add(new_user) # 提交事务,使数据持久化 session.commit() # 关闭会话 session.close()
# 创建会话 session = Session(bind=engine) # 查询所有数据 users = session.query(User).all() # 查询特定数据 user = session.query(User).filter(User.name == "张三").first() # 关闭会话 session.close() # 打印查询结果 print(users) print(user)
# 创建会话 session = Session(bind=engine) # 更新数据 user = session.query(User).filter(User.name == "张三").first() user.email = "zhangsan@new_example.com" # 提交事务,使数据持久化 session.commit() # 关闭会话 session.close() # 打印更新后的数据 print(user)
# 创建会话 session = Session(bind=engine) # 删除数据 user = session.query(User).filter(User.name == "张三").first() session.delete(user) # 提交事务,使数据持久化 session.commit() # 关闭会话 session.close() # 打印删除后的数据 print(session.query(User).all())
# 定义父模型 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()
# 定义模型 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()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!