Maison > Article > développement back-end > Conseils pratiques Python SQLAlchemy : du novice à l'expert
SQLAlchemy est un open source Object Relational Mapping (ORM) outil dans python, qui peut vous aider à mapper facilement des objets Python à des tables dans base de données grâce à un simple code Python pour fonctionner sur la base de données . SQLAlchemy prend en charge une variété de bases de données, notamment Mysql, postgresql, SQLite, etc.
Tout d’abord, vous devez installer SQLAlchemy dans votre environnement Python. Vous pouvez l'installer à l'aide de la commande suivante :
pip install sqlalchemy
Avant d'utiliser SQLAlchemy, vous devez d'abord créer un moteur de base de données. Le moteur de base de données est l'interface que SQLAlchemy utilise pour communiquer avec la base de données. Vous pouvez utiliser le code suivant pour créer un moteur de base de données :
from sqlalchemy import create_engine engine = create_engine("mysql+pymysql://user:passWord@host:port/database")
Parmi eux, mysql+pymysql
是数据库的类型,user
、password
、host
、port
和 database
se trouvent respectivement le nom d'utilisateur, le mot de passe, l'hôte, le numéro de port et le nom de la base de données.
Session est l'objet utilisé par SQLAlchemy pour interagir avec la base de données. Vous pouvez utiliser le code suivant pour créer une session :
Session = sessionmaker(bind=engine) session = Session()
Vous pouvez utiliser des sessions pour effectuer diverses opérations sur la base de données, telles que des requêtes, des insertions, des mises à jour et des suppressions. Voici quelques opérations couramment utilisées :
Vous pouvez utiliser le code suivant pour interroger les données :
results = session.query(User).filter(User.name == "John").all()
Parmi elles, la méthode User
是您要查询的表,filter()
方法用于过滤查询结果,all()
est utilisée pour obtenir tous les résultats de requête.
Vous pouvez utiliser le code suivant pour insérer des données :
new_user = User(name="John", age=30) session.add(new_user) session.commit()
Parmi elles, la méthode User
是您要插入数据的表,new_user
是您要插入的新数据,add()
方法用于将新数据添加到会话中,commit()
est utilisée pour valider toutes les modifications dans la session.
Vous pouvez utiliser le code suivant pour mettre à jour les données :
user = session.query(User).filter(User.name == "John").first() user.age = 31 session.commit()
Parmi elles, la méthode User
是您要更新数据的表,filter()
方法用于过滤查询结果,first()
方法用于获取第一个查询结果,age
是您要更新的字段,commit()
est utilisée pour valider toutes les modifications dans la session.
Vous pouvez utiliser le code suivant pour supprimer des données :
user = session.query(User).filter(User.name == "John").first() session.delete(user) session.commit()
Parmi elles, la méthode User
是您要删除数据的表,filter()
方法用于过滤查询结果,first()
方法用于获取第一个查询结果,delete()
方法用于删除数据,commit()
est utilisée pour valider toutes les modifications dans la session.
SQLAlchemy vous aide à mapper facilement des objets Python aux tables de votre base de données. Vous pouvez utiliser le code suivant pour définir une carte relationnelle :
class User(Base): __tablename__ = "user" id = Column(Integer, primary_key=True) name = Column(String(50), unique=True) age = Column(Integer) class Address(Base): __tablename__ = "address" id = Column(Integer, primary_key=True) user_id = Column(Integer, ForeignKey("user.id")) address = Column(String(100)) # 创建关系映射 User.addresses = relationship("Address", back_populates="user") Address.user = relationship("User", back_populates="addresses")
Parmi elles, la fonction User
和 Address
是您要映射的两个表,__tablename__
属性指定了表的名称,id
属性指定了主键,name
、age
和 address
属性指定了表的字段。ForeignKey()
函数用于指定外键关系。relationship()
est utilisée pour définir la cartographie des relations.
SQLAlchemy fournit une variété de techniques d'optimisation des requêtes qui peuvent vous aider à améliorer les performances des requêtes. Voici quelques techniques d'optimisation des requêtes couramment utilisées :
Vous pouvez utiliser des requêtes par lots pour améliorer les performances des requêtes. La requête par lots peut interroger plusieurs lignes de données à la fois. Vous pouvez utiliser le code suivant pour effectuer des requêtes par lots :
users = session.query(User).filter(User.age > 18).all()
Parmi elles, la méthode User
是您要查询的表,filter()
方法用于过滤查询结果,all()
est utilisée pour obtenir tous les résultats de requête.
Vous pouvez utiliser des index pour améliorer les performances des requêtes. Les index aident la base de données à trouver rapidement les données que vous souhaitez interroger. Vous pouvez utiliser le code suivant pour créer un index :
session.execute("CREATE INDEX idx_user_age ON user (age)")
où user
是您要创建索引的表,age
est le champ que vous souhaitez indexer.
SQLAlchemy prend en charge la gestion des transactions. Les transactions vous aident à garantir que les opérations de base de données réussissent toutes ou échouent toutes. Vous pouvez utiliser le code suivant pour démarrer une transaction :
session.begin()
Vous pouvez utiliser le code suivant pour soumettre une transaction :
session.commit()
您可以使用以下代码来回滚一个事务:
session.rollback()
SQLAlchemy 是一个功能强大且易于使用的 ORM 工具。它可以帮助您轻松地将 Python 对象与数据库中的表进行映射,并通过简单的 Python 代码来对数据库进行操作。本文介绍了 SQLAlchemy 的基本使用和进阶使用。希望您能通过本文学习到 SQLAlchemy 的使用技巧,并将其应用到您的实际项目中。
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!