Maison  >  Article  >  développement back-end  >  Comment utiliser la bibliothèque ORM pour la manipulation de données dans FastAPI

Comment utiliser la bibliothèque ORM pour la manipulation de données dans FastAPI

王林
王林original
2023-07-30 17:00:412778parcourir

Comment utiliser la bibliothèque ORM pour les opérations de données dans FastAPI

Introduction :
FastAPI est un framework web moderne basé sur Python Sa conception est inspirée de Starlette et Pydantic. C'est un framework hautes performances, particulièrement adapté à la construction rapide, Service API RESTful évolutif et performant. Dans FastAPI, avec l'aide de la bibliothèque ORM (Object Relational Mapping), nous pouvons effectuer des opérations de base de données plus facilement. Cet article vous expliquera comment utiliser la bibliothèque ORM pour la manipulation de données dans FastAPI et fournira quelques exemples de code.

1. Introduction à la bibliothèque ORM
ORM (Object Relational Mapping) est une technologie qui mappe les données d'une base de données en objets. La bibliothèque ORM permet aux développeurs d'exploiter la base de données en définissant un modèle objet sans écrire directement d'instructions SQL. Dans FastAPI, les bibliothèques ORM couramment utilisées incluent SQLAlchemy, Peewee, etc. Cet article utilise SQLAlchemy comme exemple pour illustrer.

2. Installer et configurer SQLAlchemy
Avant d'utiliser SQLAlchemy, nous devons d'abord installer la bibliothèque SQLAlchemy. Il peut être installé via la commande suivante :

pip install sqlalchemy

Une fois l'installation terminée, nous devons définir la configuration de connexion de la base de données. Dans FastAPI, vous pouvez ajouter le code suivant au fichier main.py :

from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base, sessionmaker

SQLALCHEMY_DATABASE_URL = "sqlite:///./test.db"
engine = create_engine(SQLALCHEMY_DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

Base = declarative_base()

Dans le code ci-dessus, nous avons créé une base de données SQLite et défini SessionLocal pour créer une session de base de données. SQLALCHEMY_DATABASE_URL est l'URL de la connexion à la base de données.

3. Définir le modèle de données
Avant d'utiliser ORM pour les opérations sur les données, nous devons définir le modèle de données. Les modèles de données peuvent être définis dans le fichier models.py. Prenons un exemple de modèle utilisateur. L'exemple est le suivant :

from sqlalchemy import Column, Integer, String
from database import Base

class User(Base):
    __tablename__ = "users"

    id = Column(Integer, primary_key=True, index=True)
    name = Column(String(50), unique=True, index=True)
    email = Column(String(50), unique=True, index=True)
    password = Column(String(100))

Dans le code ci-dessus, nous définissons un modèle de données nommé User et spécifions le nom de la table de données "users". Dans le modèle de données, on peut définir les types de chaque champ, etc.

4. Créer des tables de données
Avant d'utiliser ORM pour les opérations de données, nous devons créer les tables de base de données correspondantes. Vous pouvez ajouter le code suivant au fichier main.py :

Base.metadata.create_all(bind=engine)

Le code ci-dessus créera des tables correspondant à tous les modèles de données définis dans la base de données.

5. Exemples d'opérations de données
En prenant le modèle utilisateur comme exemple, nous donnerons quelques exemples courants d'opérations de données.

  1. Interroger tous les utilisateurs

    from sqlalchemy.orm import Session
    from . import models
    
    def get_users(db: Session):
     return db.query(models.User).all()

    Dans le code ci-dessus, nous interrogeons toutes les données utilisateur et les renvoyons.

  2. Interroger un seul utilisateur

    from sqlalchemy.orm import Session
    from . import models
    
    def get_user_by_id(db: Session, user_id: int):
     return db.query(models.User).filter(models.User.id == user_id).first()

    Dans le code ci-dessus, nous interrogeons les données d'un seul utilisateur par identifiant utilisateur et les renvoyons.

  3. Créer un utilisateur

    from sqlalchemy.orm import Session
    from . import models, schemas
    
    def create_user(db: Session, user: schemas.UserCreate):
     hashed_password = hashlib.sha256(user.password.encode()).hexdigest()
     db_user = models.User(name=user.name, email=user.email, password=hashed_password)
     db.add(db_user)
     db.commit()
     db.refresh(db_user)
     return db_user

    Dans le code ci-dessus, nous enregistrons les données utilisateur entrantes dans la base de données et les renvoyons.

  4. Mettre à jour l'utilisateur

    from sqlalchemy.orm import Session
    from . import models, schemas
    
    def update_user(db: Session, user_id: int, user: schemas.UserUpdate):
     db_user = db.query(models.User).filter(models.User.id == user_id).first()
     if user.name:
         db_user.name = user.name
     if user.email:
         db_user.email = user.email
     if user.password:
         db_user.password = hashlib.sha256(user.password.encode()).hexdigest()
     db.commit()
     db.refresh(db_user)
     return db_user

    Dans le code ci-dessus, nous enregistrons les données de mise à jour entrantes dans la base de données via l'identifiant de l'utilisateur.

  5. Supprimer l'utilisateur

    from sqlalchemy.orm import Session
    from . import models
    
    def delete_user(db: Session, user_id: int):
     db_user = db.query(models.User).filter(models.User.id == user_id).first()
     db.delete(db_user)
     db.commit()
     return {'message': f"User {user_id} deleted successfully"}

    Dans le code ci-dessus, nous supprimons les données utilisateur de la base de données par identifiant utilisateur.

Conclusion :
À travers les exemples de code ci-dessus, nous pouvons voir qu'il est relativement simple d'utiliser la bibliothèque ORM pour les opérations de données dans FastAPI. Avec l'aide de la bibliothèque ORM, nous n'avons pas besoin d'écrire directement des instructions SQL, mais pouvons effectuer des opérations de base de données via le modèle objet, rendant le code plus concis et lisible. J'espère que cet article vous aidera à utiliser la bibliothèque ORM pour les opérations de données dans votre projet FastAPI.

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