Comment utiliser le framework ORM dans la programmation serveur Python ?

WBOY
Libérer: 2023-06-18 17:12:11
original
950 Les gens l'ont consulté

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.

Avantages du framework ORM

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 :

  1. Table de données abstraites

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.

  1. Opérations simplifiées

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. .

  1. Réduire les difficultés de maintenance

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.

Choisissez le bon framework ORM

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 :

  1. Est-il compatible avec votre propre framework de développement

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.

  1. Prise en charge des bases de données

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.

  1. Support fonctionnel

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.

Implémentation d'ORM à l'aide de SQLAlchemy

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.

Installer SQLAlchemy

Avant de commencer, vous devez d'abord installer SQLAlchemy. Vous pouvez utiliser la commande pip pour l'installer.

pip install sqlalchemy
Copier après la connexion

Connectez-vous à la base de données

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

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

Créez une table de données et une classe Python

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

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.

Implémenter l'opération ORM

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.

Insérer des 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()
Copier après la connexion

Requête de données

L'utilisation de SQLAlchemy pour effectuer des opérations de requête est principalement divisée en deux étapes :

  1. Créez l'objet de table de données de requête et utilisez Session pour créer un objet de requête.
  2. Utilisez des méthodes telles que filter() et order_by() dans l'objet Query à interroger.
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)
Copier après la connexion

Mettre à jour les données

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

Supprimer les données

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

总结

在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!

Étiquettes associées:
source:php.cn
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