Maison  >  Article  >  développement back-end  >  Comment utiliser SQLAlchemy pour les opérations de base de données

Comment utiliser SQLAlchemy pour les opérations de base de données

WBOY
WBOYoriginal
2023-08-07 12:21:291167parcourir

Comment utiliser SQLAlchemy pour les opérations de base de données

SQLAlchemy est une bibliothèque Python populaire utilisée pour simplifier l'interaction et les opérations avec les bases de données relationnelles. Il fournit une approche de mappage objet-relationnel (ORM) qui permet aux développeurs d'utiliser le code Python pour faire fonctionner la base de données sans écrire d'instructions SQL originales. Cet article expliquera comment utiliser SQLAlchemy pour les opérations de base de données et joindra des exemples de code pour aider les lecteurs à démarrer rapidement.

  1. Installer SQLAlchemy

Tout d'abord, vous devez installer la bibliothèque SQLAlchemy. Exécutez la commande suivante dans la ligne de commande pour terminer l'installation :

pip install sqlalchemy
  1. Connectez-vous à la base de données

Avant de commencer, vous devez vous connecter à la base de données cible. SQLAlchemy prend en charge une variété de bases de données, notamment MySQL, PostgreSQL, SQLite et Oracle. L'exemple de code suivant se connecte à une base de données SQLite :

from sqlalchemy import create_engine

# 创建数据库引擎
engine = create_engine('sqlite:///example.db')

Le code ci-dessus crée un moteur de base de données SQLite et spécifie le chemin d'accès au fichier de base de données. Si vous devez vous connecter à d'autres types de bases de données, remplacez simplement « sqlite » dans la chaîne de connexion par le type de base de données correspondant.

  1. Définir le modèle de données

Le concept de base des opérations ORM utilisant SQLAlchemy est le modèle de données. Le modèle de données est représenté par des classes Python, chaque classe correspondant à une table de la base de données. L'exemple de code suivant définit un modèle de données nommé « Utilisateur » :

from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

# 创建基类
Base = declarative_base()

# 定义数据模型
class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    email = Column(String)

Le code ci-dessus définit un modèle de données nommé « Utilisateur » et le nom de la table est « utilisateurs ». Chaque attribut du modèle de données correspond à une colonne du tableau, où « id » est la colonne de clé primaire.

  1. Créer des tables

Avant d'utiliser le modèle de données, vous devez d'abord créer les tables correspondantes. L'exemple de code suivant crée une table nommée "users" :

Base.metadata.create_all(engine)

Le code ci-dessus utilise les définitions du modèle de données pour créer automatiquement la structure de table correspondante.

  1. Insérer des données

Une fois la structure de la table créée, vous pouvez démarrer les opérations de base de données. L'exemple de code suivant insère un nouvel enregistrement utilisateur :

from sqlalchemy.orm import sessionmaker

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

# 创建新用户
new_user = User(name='John Doe', email='johndoe@example.com')

# 添加到会话
session.add(new_user)

# 提交事务
session.commit()

Le code ci-dessus utilise l'objet session pour les opérations de base de données. Tout d'abord, une fabrique de sessions est créée et liée au moteur de base de données. Créez ensuite un objet de session via la fabrique de sessions. Ensuite, un nouvel objet utilisateur est créé et ajouté à la session à l'aide de la méthode session.add(). Enfin, utilisez session.commit() pour valider la transaction et enregistrer les données dans la base de données. session.add()方法将其添加到会话中。最后使用session.commit()提交事务,将数据保存到数据库中。

  1. 查询数据

使用SQLAlchemy进行查询操作时,可以使用查询表达式或者SQL语句。以下代码示例查询所有用户记录:

# 查询所有用户
users = session.query(User).all()

# 打印查询结果
for user in users:
    print(user.name, user.email)

上述代码使用session.query(User)创建了一个查询对象,然后调用.all()方法执行查询操作,返回所有的用户记录。可以通过遍历查询结果,获取每条记录的属性值。

  1. 更新数据

更新数据可以使用几种不同的方式。以下代码示例更新指定用户的电子邮件地址:

# 查询指定用户
user = session.query(User).filter_by(name='John Doe').first()

# 更新电子邮件地址
user.email = 'newemail@example.com'

# 提交事务
session.commit()

上述代码使用session.query(User).filter_by(name='John Doe').first()查询到指定用户记录,并通过修改其属性值来更新数据。

  1. 删除数据

删除数据也可以使用几种不同的方式。以下代码示例删除指定用户:

# 查询指定用户
user = session.query(User).filter_by(name='John Doe').first()

# 删除用户
session.delete(user)

# 提交事务
session.commit()

上述代码使用session.delete(user)

    Données de requête

    🎜Lorsque vous utilisez SQLAlchemy pour les opérations de requête, vous pouvez utiliser des expressions de requête ou des instructions SQL. L'exemple de code suivant interroge tous les enregistrements utilisateur : 🎜rrreee🎜Le code ci-dessus utilise session.query(User) pour créer un objet de requête, puis appelle .all() méthode pour effectuer l’opération de requête, renvoie tous les enregistrements utilisateur. Vous pouvez obtenir la valeur d'attribut de chaque enregistrement en parcourant les résultats de la requête. 🎜
      🎜Mettre à jour les données🎜🎜🎜La mise à jour des données peut être effectuée de différentes manières. L'exemple de code suivant met à jour l'adresse e-mail de l'utilisateur spécifié : 🎜rrreee🎜Le code ci-dessus utilise session.query(User).filter_by(name='John Doe').first() pour interroger le enregistrement utilisateur spécifié, et mettre à jour les données en modifiant ses valeurs de propriété. 🎜
        🎜Supprimer des données🎜🎜🎜La suppression de données peut également être effectuée de différentes manières. L'exemple de code suivant supprime l'utilisateur spécifié : 🎜rrreee🎜Le code ci-dessus utilise session.delete(user) pour supprimer l'enregistrement utilisateur spécifié. 🎜🎜Ce qui précède présente les étapes de base de l'utilisation de SQLAlchemy pour les opérations de base de données et donne des exemples de code correspondants. SQLAlchemy est très riche en fonctions, notamment la gestion des transactions, les requêtes avancées et d'autres fonctions. Les lecteurs peuvent l'étudier et l'explorer davantage. J'espère que cet article pourra aider les lecteurs à démarrer rapidement avec SQLAlchemy et à améliorer l'efficacité et la commodité des opérations de base de 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!

Déclaration:
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