Avec l'utilisation généralisée de Python dans la programmation côté serveur, le framework ORM (Object Relational Mapping) est devenu un élément important de la programmation serveur Python. Le framework ORM simplifie les opérations de base de données en mappant les données de la base de données avec des objets Python et en faisant abstraction des interfaces communes, permettant aux développeurs de se concentrer davantage sur la mise en œuvre de la logique métier plutôt que sur les opérations de base de données sous-jacentes. Cet article explique comment utiliser le framework ORM dans la programmation serveur Python.
Dans les opérations de base de données traditionnelles, nous devons utiliser des instructions SQL pour ajouter, supprimer, modifier et interroger la base de données. De telles opérations nécessitent une compréhension de la structure de la base de données, de la structure des tables de données et de la syntaxe SQL, et sont difficiles à maintenir et à développer. L'utilisation du framework ORM peut mapper des tables de données avec des classes Python et des opérations abstraites d'ajout, de suppression, de modification et d'interrogation, simplifiant ainsi le développement. Les avantages du framework ORM sont les suivants :
La table de données est l'unité de stockage la plus basique de la base de données. À l'aide du framework ORM, nous pouvons mapper une table de données dans une classe Python, et les attributs de la classe correspondent aux noms de colonnes de la table de données, réalisant ainsi l'abstraction de la table de données. De cette manière, opérer sur la table de données équivaut à opérer sur la classe Python.
En utilisant le framework ORM, nous pouvons utiliser des fonctions et des méthodes Python simples pour faire fonctionner la base de données. Nous pouvons encapsuler les opérations SQL sous-jacentes et n'avons besoin que d'appeler des méthodes pour effectuer des opérations d'ajout, de suppression, de modification et de requête. .
En utilisant le framework ORM, vous pouvez faire abstraction des détails sous-jacents des opérations de base de données et réduire le couplage entre la base de données et le code, réduisant ainsi la difficulté de maintenance et d'expansion, permettant aux développeurs de se concentrer davantage sur la mise en œuvre logique métier.
Il existe de nombreux frameworks ORM en Python, notamment Django ORM, SQLAlchemy, Peewee, etc. Lors du choix d'un framework ORM approprié, vous devez prendre en compte les aspects suivants :
Si vous utilisez un framework web Python, tel que Flask ou Django, vous devez vous en assurer ? que le framework ORM que vous choisissez est compatible avec le framework.
Différents frameworks ORM prennent en charge différentes bases de données. Par exemple, Django ORM ne prend en charge que PostgreSQL, MySQL et SQLite, tandis que SQLAlchemy prend en charge davantage de bases de données, telles que Oracle, SQL Server, MySQL, etc. Par conséquent, vous devez choisir un framework ORM adapté à votre propre usage.
Différents frameworks ORM fournissent un support fonctionnel différent pour différents scénarios d'application. Vous devez choisir le framework ORM qui répond à vos besoins en fonction de vos propres besoins.
Dans la programmation serveur Python, SQLAlchemy est l'un des frameworks ORM les plus populaires. Il s'agit d'une boîte à outils SQL complète et d'une bibliothèque ORM qui peut interagir avec la plupart des bases de données. Ci-dessous, nous expliquerons comment utiliser SQLAlchemy pour implémenter ORM.
Avant de commencer, vous devez d'abord installer SQLAlchemy. Vous pouvez utiliser la commande pip pour l'installer.
pip install sqlalchemy
En utilisant SQLAlchemy pour les opérations ORM, vous devez d'abord établir une connexion avec la base de données. Dans SQLAlchemy, vous pouvez utiliser create_engine()
from sqlalchemy import create_engine DB_URI = 'postgresql://username:password@host:port/database' engine = create_engine(DB_URI)
pour vous connecter à la base de données. Parmi eux, DB_URI est la chaîne de connexion à la base de données au format "{dialect}://{user}:{password}@{host} : {port}/{database }", par exemple, la chaîne de connexion au format PostgreSQL est :
postgresql://myuser:mypassword@localhost:5432/mydatabase
Utilisez SQLAlchemy pour les opérations de base de données et vous devez mapper la table de données à une classe Python . La classe Python correspond à la table de données de la base de données et les attributs de la classe correspondent aux noms de colonnes de la table. Avant de créer une classe Python, vous devez d'abord créer une table de données. Les tables de données dans SQLAlchemy sont représentées sous forme de table. Vous pouvez utiliser la fonction declarative_base() pour créer une classe de base, puis utiliser la classe de base pour définir la relation de mappage entre les classes Python et les tables de base de données.
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) age = Column(Integer) email = Column(String)
Dans le code ci-dessus, la classe User hérite de la classe Base, l'attribut __tablename__ spécifie le nom de la table de données correspondante, puis chaque attribut correspond à la colonne de la table de données.
Maintenant que nous avons établi une connexion à la base de données et créé une relation de mappage entre les classes Python et les tables de données, nous pouvons maintenant exploiter la base de données.
Pour insérer des données, vous pouvez utiliser la méthode session.add(), et pour valider une transaction, utilisez la méthode session.commit().
from sqlalchemy.orm import sessionmaker Session = sessionmaker(bind=engine) session = Session() user = User(name='Tom', age=20, email='tom@example.com') session.add(user) session.commit()
L'utilisation de SQLAlchemy pour effectuer des opérations de requête est principalement divisée en deux étapes :
users = session.query(User).filter(User.age > 18).order_by(User.age.desc()).all() for user in users: print(user.name, user.age, user.email)
La mise à jour des données peut être effectuée à l'aide de la méthode session.add().
user = session.query(User).filter_by(name='Tom').first() user.age = 21 session.add(user) session.commit()
La suppression des données de la base de données peut être effectuée à l'aide de la méthode session.delete().
user = session.query(User).filter_by(name='Tom').first() session.delete(user) session.commit()
在Python服务器编程中,ORM框架可以提供数据抽象、简化操作和降低维护难度的优势,能够加快开发速度。在选择ORM框架时,需要考虑自己的技术栈以及需求,选择相应的ORM框架。本文以SQLAlchemy为例,介绍了如何使用SQLAlchemy实现ORM操作,包括连接数据库、创建数据表和Python类以及实现增删改查操作。
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!