Maison développement back-end Tutoriel Python Comment implémenter la connexion à la base de données et le traitement des transactions dans FastAPI

Comment implémenter la connexion à la base de données et le traitement des transactions dans FastAPI

Jul 30, 2023 am 11:45 AM
事务处理 fastapi 数据库连接

Comment implémenter la connexion à une base de données et le traitement des transactions dans FastAPI

Introduction :
Avec le développement rapide des applications Web, la connexion à la base de données et le traitement des transactions sont devenus un sujet très important. FastAPI est un framework Web Python hautes performances apprécié des développeurs pour sa rapidité et sa facilité d'utilisation. Dans cet article, nous présenterons comment implémenter des connexions et des transactions de base de données dans FastAPI pour vous aider à créer des applications Web fiables et efficaces.

Première partie : Connexion à la base de données
Dans FastAPI, divers outils de connexion à la base de données peuvent être utilisés, tels que SQLAlchemy et Tortoise-ORM. Nous utiliserons SQLAlchemy comme exemple pour démontrer.

  1. Installer SQLAlchemy et le pilote MySQL
    Tout d'abord, nous devons installer la bibliothèque SQLAlchemy et le pilote MySQL correspondant. Vous pouvez l'installer à l'aide de la commande suivante :
pip install sqlalchemy
pip install mysql-connector-python
Copier après la connexion
  1. Créer une connexion à la base de données
    Dans l'application FastAPI, nous pouvons créer une connexion à la base de données dans l'application principale et l'injecter dans le gestionnaire de route. Voici un exemple de code :
from fastapi import Depends, FastAPI
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.session import Session

app = FastAPI()

SQLALCHEMY_DATABASE_URL = "mysql+mysqlconnector://user:password@localhost/db_name"

engine = create_engine(
    SQLALCHEMY_DATABASE_URL,
    pool_size=10,
    max_overflow=20
)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()

async def get_db() -> Session:
    try:
        db = SessionLocal()
        yield db
    finally:
        db.close()
Copier après la connexion

Dans le code ci-dessus, nous créons d'abord l'URL de la connexion à la base de données, puis utilisons la fonction create_engine de SQLAlchemy pour créer le moteur de base de données. Ensuite, nous définissons une classe SessionLocal pour maintenir la session de base de données. Enfin, nous créons une fonction de dépendance get_db qui renverra une instance de session de base de données à utiliser dans chaque gestionnaire de requêtes.

Partie 2 : Traitement des transactions
Dans FastAPI, le traitement des transactions peut être utilisé pour garantir l'atomicité et la cohérence des opérations de base de données. Vous trouverez ci-dessous un exemple de code qui montre comment utiliser les transactions avec FastAPI.

  1. Injecter la session de base de données à l'aide de dépendances
    Nous continuerons à utiliser la fonction de dépendance get_db que nous avons créée plus tôt dans cet exemple et injecterons la session de base de données dans le gestionnaire de route.
from fastapi import Depends, FastAPI
from sqlalchemy.orm import Session
from .models import User
from .crud import create_user
from .database import get_db

app = FastAPI()

@app.post("/users/")
async def create_user_handler(user: User, db: Session = Depends(get_db)):
    return create_user(db=db, user=user)
Copier après la connexion

Dans le code ci-dessus, nous définissons un gestionnaire de route create_user_handler qui accepte un objet utilisateur et une session de base de données comme paramètres. Dans ce gestionnaire, nous appelons une fonction appelée create_user qui créera un nouvel utilisateur dans la base de données.

  1. Implémentation du traitement des transactions
    Ce qui suit est le code d'un exemple de fonction create_user, qui montre comment utiliser le traitement des transactions dans une session de base de données :
from sqlalchemy.orm import Session
from .models import User

def create_user(db: Session, user: User):
    try:
        db.begin()
        db.add(user)
        db.commit()
        db.refresh(user)
        return user
    except:
        db.rollback()
        raise
Copier après la connexion

Dans le code ci-dessus, nous démarrons d'abord une transaction en utilisant le db.begin( ) déclaration . Nous ajoutons ensuite l'objet utilisateur à la session de base de données à l'aide de l'instruction db.add(). Ensuite, nous validons la transaction dans la base de données à l'aide de l'instruction db.commit(). Si une erreur se produit pendant le processus de validation, nous utilisons l'instruction db.rollback() pour annuler la transaction. Enfin, nous actualisons l'objet utilisateur à l'aide de l'instruction db.refresh() pour nous assurer qu'il contient la valeur de clé primaire générée dans la base de données.

Conclusion :
Dans cet article, nous avons présenté comment implémenter la connexion à la base de données et le traitement des transactions dans FastAPI. Nous avons d'abord créé la connexion à la base de données à l'aide de SQLAlchemy, puis avons utilisé la fonction de dépendance pour injecter la session de base de données dans le gestionnaire de route. Ensuite, nous avons montré comment utiliser les transactions au sein d'une session de base de données pour garantir l'atomicité et la cohérence des opérations de base de données. En apprenant et en pratiquant ces techniques, vous serez en mesure de créer des applications Web fiables et efficaces.

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Flask vs FastAPI : le meilleur choix pour un développement efficace d'API Web Flask vs FastAPI : le meilleur choix pour un développement efficace d'API Web Sep 27, 2023 pm 09:01 PM

FlaskvsFastAPI : Le meilleur choix pour un développement efficace de WebAPI Introduction : Dans le développement de logiciels modernes, WebAPI est devenu un élément indispensable. Ils fournissent des données et des services qui permettent la communication et l'interopérabilité entre différentes applications. Lors du choix d'un framework pour développer WebAPI, Flask et FastAPI sont deux choix qui ont beaucoup retenu l'attention. Les deux frameworks sont très populaires et chacun présente ses propres avantages. Dans cet article, nous examinerons Fl

Créez des applications Web internationales à l'aide du framework FastAPI Créez des applications Web internationales à l'aide du framework FastAPI Sep 29, 2023 pm 03:53 PM

Utilisez le framework FastAPI pour créer des applications Web internationales FastAPI est un framework Web Python hautes performances qui combine des annotations de type Python et une prise en charge asynchrone hautes performances pour rendre le développement d'applications Web plus simple, plus rapide et plus fiable. Lors de la création d'une application Web internationale, FastAPI fournit des outils et des concepts pratiques qui permettent à l'application de prendre facilement en charge plusieurs langues. Ci-dessous, je vais donner un exemple de code spécifique pour présenter comment utiliser le framework FastAPI pour construire

Django, Flask et FastAPI : quel framework convient aux débutants ? Django, Flask et FastAPI : quel framework convient aux débutants ? Sep 27, 2023 pm 09:06 PM

Django, Flask et FastAPI : quel framework convient aux débutants ? Introduction : Dans le domaine du développement d'applications Web, il existe de nombreux excellents frameworks Python parmi lesquels choisir. Cet article se concentrera sur les trois frameworks les plus populaires, Django, Flask et FastAPI. Nous évaluerons leurs fonctionnalités et discuterons du framework le mieux adapté aux débutants. Parallèlement, nous fournirons également quelques exemples de code spécifiques pour aider les débutants à mieux comprendre ces frameworks. 1. Django : Django

Problèmes courants de connexion à la base de données et de lecture et d'écriture de données en C# Problèmes courants de connexion à la base de données et de lecture et d'écriture de données en C# Oct 10, 2023 pm 07:24 PM

Les problèmes courants de connexion à la base de données et de lecture et d'écriture de données en C# nécessitent des exemples de code spécifiques. Dans le développement C#, la connexion à la base de données et la lecture et l'écriture des données sont des problèmes fréquemment rencontrés. Une gestion correcte de ces problèmes est la clé pour garantir la qualité et les performances du code. Cet article présentera certains problèmes courants de connexion à une base de données et de lecture et d'écriture de données, et fournira des exemples de code spécifiques pour aider les lecteurs à mieux comprendre et résoudre ces problèmes. Problèmes de connexion à la base de données 1.1 Erreurs de chaîne de connexion Lors de la connexion à la base de données, une erreur courante est que la chaîne de connexion est incorrecte. La chaîne de connexion contient la connexion à la base de données

Pourquoi ma connexion à la base de données PHP échoue-t-elle ? Pourquoi ma connexion à la base de données PHP échoue-t-elle ? Jun 05, 2024 pm 07:55 PM

Les raisons d'un échec de connexion à la base de données PHP incluent : le serveur de base de données n'est pas en cours d'exécution, un nom d'hôte ou un port incorrect, des informations d'identification de base de données incorrectes ou un manque d'autorisations appropriées. Les solutions incluent : le démarrage du serveur, la vérification du nom d'hôte et du port, la vérification des informations d'identification, la modification des autorisations et l'ajustement des paramètres du pare-feu.

Django, Flask et FastAPI : choisissez celui qui correspond le mieux à vos besoins de développement Django, Flask et FastAPI : choisissez celui qui correspond le mieux à vos besoins de développement Sep 29, 2023 am 10:49 AM

Django, Flask et FastAPI : choisissez celui qui correspond le mieux à vos besoins de développement, exemples de code spécifiques requis Introduction : Dans le développement Web moderne, le choix du bon framework est crucial. Alors que Python continue de se développer dans le domaine du développement Web, des frameworks tels que Django, Flask et FastAPI deviennent de plus en plus populaires parmi les développeurs. Cet article présentera les caractéristiques et les scénarios applicables de ces trois frameworks, combinés à des exemples de code spécifiques, pour vous aider à choisir le framework le mieux adapté à vos besoins de développement. 1.D

Comment configurer la connexion à la base de données dans mybatis Comment configurer la connexion à la base de données dans mybatis Jan 15, 2024 pm 02:12 PM

Méthode de connexion à la base de données de configuration Mybatis : 1. Spécifiez la source de données ; 2. Configurez le gestionnaire de transactions ; 3. Configurez le processeur de type et le mappeur ; 4. Utilisez les éléments d'environnement ; Introduction détaillée : 1. Spécifiez la source de données. Dans le fichier « mybatis-config.xml », vous devez configurer la source de données. La source de données est une interface qui fournit une connexion à la base de données. la normalité des transactions de la base de données. Pour le traitement, vous devez également configurer le gestionnaire de transactions 3. Configurer le processeur de type et le mappeur, etc.

Connexions avancées aux bases de données PHP : transactions, verrous et contrôle de concurrence Connexions avancées aux bases de données PHP : transactions, verrous et contrôle de concurrence Jun 01, 2024 am 11:43 AM

Les connexions avancées aux bases de données PHP impliquent des transactions, des verrous et un contrôle de concurrence pour garantir l'intégrité des données et éviter les erreurs. Une transaction est une unité atomique d'un ensemble d'opérations, gérée via les méthodes beginTransaction(), commit() et rollback(). Les verrous empêchent l'accès simultané aux données via PDO::LOCK_SHARED et PDO::LOCK_EXCLUSIVE. Le contrôle d'accès concurrentiel coordonne l'accès à plusieurs transactions via les niveaux d'isolement MySQL (lecture non validée, lecture validée, lecture répétable, sérialisée). Dans les applications pratiques, les transactions, les verrous et le contrôle de concurrence sont utilisés pour la gestion des stocks de produits sur les sites Web d'achat afin de garantir l'intégrité des données et d'éviter les problèmes d'inventaire.

See all articles