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