Heim Backend-Entwicklung Python-Tutorial So implementieren Sie Datenbankverbindungen und Transaktionsverarbeitung in FastAPI

So implementieren Sie Datenbankverbindungen und Transaktionsverarbeitung in FastAPI

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

So implementieren Sie Datenbankverbindungen und Transaktionsverarbeitung in FastAPI

Einführung:
Mit der rasanten Entwicklung von Webanwendungen sind Datenbankverbindungen und Transaktionsverarbeitung zu einem sehr wichtigen Thema geworden. FastAPI ist ein leistungsstarkes Python-Webframework, das bei Entwicklern wegen seiner Geschwindigkeit und Benutzerfreundlichkeit beliebt ist. In diesem Artikel stellen wir vor, wie Sie Datenbankverbindungen und Transaktionen in FastAPI implementieren, um Sie beim Erstellen zuverlässiger und effizienter Webanwendungen zu unterstützen.

Teil Eins: Datenbankverbindung
In FastAPI können verschiedene Datenbankverbindungstools verwendet werden, wie zum Beispiel SQLAlchemy und Tortoise-ORM. Zur Veranschaulichung verwenden wir SQLAlchemy als Beispiel.

  1. SQLAlchemy und MySQL-Treiber installieren
    Zuerst müssen wir die SQLAlchemy-Bibliothek und den entsprechenden MySQL-Treiber installieren. Sie können es mit dem folgenden Befehl installieren:
pip install sqlalchemy
pip install mysql-connector-python
Nach dem Login kopieren
  1. Datenbankverbindung erstellen
    In der FastAPI-Anwendung können wir eine Datenbankverbindung in der Hauptanwendung erstellen und diese in den Routenhandler einfügen. Hier ist ein Beispielcode:
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()
Nach dem Login kopieren

Im obigen Code erstellen wir zunächst die URL der Datenbankverbindung und verwenden dann die Funktion „create_engine“ von SQLAlchemy, um die Datenbank-Engine zu erstellen. Als nächstes definieren wir eine SessionLocal-Klasse zur Verwaltung von Datenbanksitzungen. Schließlich erstellen wir eine Abhängigkeitsfunktion get_db, die eine Datenbanksitzungsinstanz zur Verwendung in jedem Anforderungshandler zurückgibt.

Teil 2: Transaktionsverarbeitung
In FastAPI kann die Transaktionsverarbeitung verwendet werden, um die Atomizität und Konsistenz von Datenbankoperationen sicherzustellen. Nachfolgend finden Sie einige Beispielcodes, die die Verwendung von Transaktionen mit FastAPI demonstrieren.

  1. Injizieren der Datenbanksitzung mithilfe von Abhängigkeiten
    Wir werden weiterhin die Abhängigkeitsfunktion get_db verwenden, die wir zuvor in diesem Beispiel erstellt haben, und die Datenbanksitzung in den Routenhandler einfügen.
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)
Nach dem Login kopieren

Im obigen Code haben wir einen Routenhandler create_user_handler definiert, der ein Benutzerobjekt und eine Datenbanksitzung als Parameter akzeptiert. In diesem Handler rufen wir eine Funktion namens create_user auf, die einen neuen Benutzer in der Datenbank erstellt.

  1. Transaktionsverarbeitung implementieren
    Das Folgende ist der Code einer Beispielfunktion „create_user“, der zeigt, wie die Transaktionsverarbeitung in einer Datenbanksitzung verwendet wird:
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
Nach dem Login kopieren

Im obigen Code starten wir zunächst eine Transaktion mit db.begin( ) Stellungnahme . Anschließend fügen wir das Benutzerobjekt mithilfe der db.add()-Anweisung zur Datenbanksitzung hinzu. Als nächstes übergeben wir die Transaktion mithilfe der db.commit()-Anweisung an die Datenbank. Wenn während des Festschreibungsprozesses ein Fehler auftritt, verwenden wir die Anweisung db.rollback(), um die Transaktion zurückzusetzen. Abschließend aktualisieren wir das Benutzerobjekt mit der Anweisung db.refresh(), um sicherzustellen, dass es den in der Datenbank generierten Primärschlüsselwert enthält.

Fazit:
In diesem Artikel haben wir vorgestellt, wie man Datenbankverbindungen und Transaktionsverarbeitung in FastAPI implementiert. Wir haben zuerst die Datenbankverbindung mit SQLAlchemy erstellt und dann die Abhängigkeitsfunktion verwendet, um die Datenbanksitzung in den Routenhandler einzufügen. Als Nächstes haben wir gezeigt, wie Transaktionen innerhalb einer Datenbanksitzung verwendet werden, um die Atomizität und Konsistenz von Datenbankoperationen zu gewährleisten. Durch das Erlernen und Üben dieser Techniken werden Sie in der Lage sein, zuverlässige und effiziente Webanwendungen zu erstellen.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Datenbankverbindungen und Transaktionsverarbeitung in FastAPI. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Flask vs. FastAPI: Die beste Wahl für eine effiziente Web-API-Entwicklung Flask vs. FastAPI: Die beste Wahl für eine effiziente Web-API-Entwicklung Sep 27, 2023 pm 09:01 PM

FlaskvsFastAPI: Die beste Wahl für eine effiziente Entwicklung von WebAPI Einführung: In der modernen Softwareentwicklung ist WebAPI zu einem unverzichtbaren Bestandteil geworden. Sie stellen Daten und Dienste bereit, die die Kommunikation und Interoperabilität zwischen verschiedenen Anwendungen ermöglichen. Bei der Auswahl eines Frameworks für die Entwicklung von WebAPI haben Flask und FastAPI große Aufmerksamkeit erregt. Beide Frameworks erfreuen sich großer Beliebtheit und jedes hat seine eigenen Vorteile. In diesem Artikel werden wir uns Fl ansehen

Erstellen Sie internationale Webanwendungen mit dem FastAPI-Framework Erstellen Sie internationale Webanwendungen mit dem FastAPI-Framework Sep 29, 2023 pm 03:53 PM

Verwenden Sie das FastAPI-Framework, um internationale Webanwendungen zu erstellen. FastAPI ist ein leistungsstarkes Python-Web-Framework, das Python-Typ-Annotationen und leistungsstarke asynchrone Unterstützung kombiniert, um die Entwicklung von Webanwendungen einfacher, schneller und zuverlässiger zu machen. Beim Erstellen einer internationalen Webanwendung bietet FastAPI praktische Tools und Konzepte, mit denen die Anwendung problemlos mehrere Sprachen unterstützen kann. Im Folgenden werde ich ein spezifisches Codebeispiel geben, um vorzustellen, wie das FastAPI-Framework zum Erstellen verwendet wird

Django, Flask und FastAPI: Welches Framework ist das richtige für Anfänger? Django, Flask und FastAPI: Welches Framework ist das richtige für Anfänger? Sep 27, 2023 pm 09:06 PM

Django, Flask und FastAPI: Welches Framework ist das richtige für Anfänger? Einführung: Im Bereich der Webanwendungsentwicklung stehen viele hervorragende Python-Frameworks zur Auswahl. Dieser Artikel konzentriert sich auf die drei beliebtesten Frameworks: Django, Flask und FastAPI. Wir werden ihre Funktionen bewerten und besprechen, welches Framework für Anfänger am besten geeignet ist. Gleichzeitig stellen wir einige spezifische Codebeispiele bereit, um Anfängern ein besseres Verständnis dieser Frameworks zu erleichtern. 1. Django: Django

Häufige Datenbankverbindungs- und Datenlese- und -schreibprobleme in C# Häufige Datenbankverbindungs- und Datenlese- und -schreibprobleme in C# Oct 10, 2023 pm 07:24 PM

Häufige Datenbankverbindungs- und Datenlese- und -schreibprobleme in C# erfordern spezifische Codebeispiele. Bei der C#-Entwicklung sind Datenbankverbindungs- und Datenlese- und -schreibprobleme der Schlüssel zur Sicherstellung der Codequalität und -leistung. In diesem Artikel werden einige häufig auftretende Datenbankverbindungs- und Datenlese- und -schreibprobleme vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, diese Probleme besser zu verstehen und zu lösen. Probleme mit der Datenbankverbindung 1.1 Verbindungszeichenfolgenfehler Beim Herstellen einer Verbindung zur Datenbank besteht ein häufiger Fehler darin, dass die Verbindungszeichenfolge falsch ist. Der Verbindungsstring enthält die Verbindung zur Datenbank

Warum schlägt meine PHP-Datenbankverbindung fehl? Warum schlägt meine PHP-Datenbankverbindung fehl? Jun 05, 2024 pm 07:55 PM

Zu den Gründen für einen Verbindungsfehler einer PHP-Datenbank gehören: Der Datenbankserver läuft nicht, falscher Hostname oder Port, falsche Datenbankanmeldeinformationen oder fehlende entsprechende Berechtigungen. Zu den Lösungen gehören: Starten des Servers, Überprüfen des Hostnamens und Ports, Überprüfen der Anmeldeinformationen, Ändern von Berechtigungen und Anpassen der Firewall-Einstellungen.

Django, Flask und FastAPI: Wählen Sie diejenige aus, die Ihren Entwicklungsanforderungen am besten entspricht Django, Flask und FastAPI: Wählen Sie diejenige aus, die Ihren Entwicklungsanforderungen am besten entspricht Sep 29, 2023 am 10:49 AM

Django, Flask und FastAPI: Wählen Sie diejenige aus, die Ihren Entwicklungsanforderungen am besten entspricht. Spezifische Codebeispiele sind erforderlich. Einführung: In der modernen Webentwicklung ist die Auswahl des richtigen Frameworks von entscheidender Bedeutung. Da sich Python im Bereich der Webentwicklung weiterentwickelt, erfreuen sich Frameworks wie Django, Flask und FastAPI bei Entwicklern immer größerer Beliebtheit. In diesem Artikel werden die Merkmale und anwendbaren Szenarien dieser drei Frameworks vorgestellt, kombiniert mit spezifischen Codebeispielen, um Ihnen bei der Auswahl des Frameworks zu helfen, das Ihren Entwicklungsanforderungen am besten entspricht. 1. D

So konfigurieren Sie die Datenbankverbindung in mybatis So konfigurieren Sie die Datenbankverbindung in mybatis Jan 15, 2024 pm 02:12 PM

So konfigurieren Sie die Datenbankverbindung in mybatis: 1. Geben Sie die Datenquelle an. 3. Konfigurieren Sie den Typprozessor und den Mapper. 5. Konfigurieren Sie Aliase. Detaillierte Einführung: 1. In der Datei „mybatis-config.xml“ müssen Sie die Datenquelle konfigurieren, die eine Datenbankverbindung bereitstellt Die Normalität von Datenbanktransaktionen erfordert auch die Konfiguration des Transaktionsmanagers 3. Konfigurieren Sie den Typprozessor und den Mapper usw.

Erweiterte PHP-Datenbankverbindungen: Transaktionen, Sperren und Parallelitätskontrolle Erweiterte PHP-Datenbankverbindungen: Transaktionen, Sperren und Parallelitätskontrolle Jun 01, 2024 am 11:43 AM

Erweiterte PHP-Datenbankverbindungen umfassen Transaktionen, Sperren und Parallelitätskontrolle, um die Datenintegrität sicherzustellen und Fehler zu vermeiden. Eine Transaktion ist eine atomare Einheit einer Reihe von Vorgängen, die über die Methoden beginTransaction(), commit() und rollback() verwaltet werden. Sperren verhindern den gleichzeitigen Zugriff auf Daten über PDO::LOCK_SHARED und PDO::LOCK_EXCLUSIVE. Die Parallelitätskontrolle koordiniert den Zugriff auf mehrere Transaktionen über MySQL-Isolationsstufen (nicht festgeschriebenes Lesen, festgeschriebenes Lesen, wiederholbares Lesen, serialisiert). In praktischen Anwendungen werden Transaktionen, Sperren und Parallelitätskontrolle für die Produktbestandsverwaltung auf Einkaufswebsites verwendet, um die Datenintegrität sicherzustellen und Bestandsprobleme zu vermeiden.

See all articles