Heim >Backend-Entwicklung >Python-Tutorial >So implementieren Sie Datenbankverbindungen und Transaktionsverarbeitung in 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.
pip install sqlalchemy pip install mysql-connector-python
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()
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.
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)
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.
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
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!