Maison > développement back-end > Tutoriel Python > Python SQLAlchemy Ultimate Guide : les secrets pour jouer avec des bases de données relationnelles

Python SQLAlchemy Ultimate Guide : les secrets pour jouer avec des bases de données relationnelles

王林
Libérer: 2024-02-25 09:46:16
avant
390 Les gens l'ont consulté

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

1. Rencontre sqlAlchimie : démarrez le base de donnéesvoyage

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")
Copier après la connexion

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)
Copier après la connexion

2. Contrôler les données : ajouter, supprimer, vérifier et modifier

1. Insérer des données : remplir la base de données

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

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

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

# 关闭会话
session.close()
Copier après la connexion

2. Requête de données : extrayez ce dont vous avez besoin

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

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

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

# 关闭会话
session.close()

# 打印查询结果
print(users)
print(user)
Copier après la connexion

3. Mettre à jour les données : modifier les

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

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

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

# 关闭会话
session.close()

# 打印更新后的数据
print(user)
Copier après la connexion

4. Supprimer les données : effacer les données inutiles

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

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

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

# 关闭会话
session.close()

# 打印删除后的数据
print(session.query(User).all())
Copier après la connexion

3. Modélisation des relations : décrire les associations de données

1. Relation un-à-plusieurs : construire une hiérarchie

# 定义父模型
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()
Copier après la connexion

2. Relation plusieurs-à-plusieurs : connecter des associations complexes

# 定义模型
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()
Copier après la connexion
4. Pratique :

Projet

Application

1. Système de blog : stocker les articles et les commentaires

2. Système de commerce électronique : gérer les produits et les commandes

3. Plateforme sociale : créer une relation utilisateur et un système de messagerie

Conclusion

SQLAlchemy nous ouvre une voie pratique vers les bases de données relationnelles. Il simplifie non seulement les opérations sur les données, mais offre également des capacités flexibles de modélisation des relations, rendant la gestion des données plus facile et plus efficace. J'espère que ce guide pourra vous inspirer dans votre parcours SQLAlchemy et vous aider à parcourir des milliers de kilomètres dans le monde des données.

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!

Étiquettes associées:
source:lsjlt.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal