So verwenden Sie die ORM-Bibliothek für Datenoperationen in FastAPI
Einführung:
FastAPI ist ein modernes Web-Framework, das auf Python basiert. Sein Design ist von Starlette und Pydantic inspiriert. Es ist ein leistungsstarkes Framework, das sich besonders für die schnelle Erstellung eignet. Skalierbarer und leistungsstarker RESTful-API-Dienst. In FastAPI können wir mithilfe der ORM-Bibliothek (Object Relational Mapping) Datenbankoperationen bequemer durchführen. In diesem Artikel erfahren Sie, wie Sie die ORM-Bibliothek zur Datenbearbeitung in FastAPI verwenden, und stellen einige Codebeispiele bereit.
1. Einführung in die ORM-Bibliothek
ORM (Object Relational Mapping) ist eine Technologie, die Daten in einer Datenbank in Objekte abbildet. Mit der ORM-Bibliothek können Entwickler die Datenbank betreiben, indem sie ein Objektmodell definieren, ohne direkt SQL-Anweisungen schreiben zu müssen. Zu den in FastAPI häufig verwendeten ORM-Bibliotheken gehören SQLAlchemy, Peewee usw. In diesem Artikel wird SQLAlchemy als Beispiel zur Veranschaulichung verwendet.
2. SQLAlchemy installieren und konfigurieren
Bevor wir SQLAlchemy verwenden, müssen wir zunächst die SQLAlchemy-Bibliothek installieren. Es kann über den folgenden Befehl installiert werden:
pip install sqlalchemy
Nachdem die Installation abgeschlossen ist, müssen wir die Verbindungskonfiguration der Datenbank festlegen. In FastAPI können Sie den folgenden Code zur Datei main.py hinzufügen:
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()
Im obigen Code haben wir eine SQLite-Datenbank erstellt und SessionLocal zum Erstellen einer Datenbanksitzung definiert. SQLALCHEMY_DATABASE_URL ist die URL der Datenbankverbindung.
3. Definieren Sie das Datenmodell
Bevor wir ORM für Datenoperationen verwenden, müssen wir das Datenmodell definieren. Datenmodelle können in der Datei models.py definiert werden. Nehmen Sie als Beispiel ein Beispielbenutzermodell:
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))
Im obigen Code definieren wir ein Datenmodell mit dem Namen „Benutzer“ und geben den Datentabellennamen „Benutzer“ an. Im Datenmodell können wir die Typen der einzelnen Felder usw. definieren.
4. Datentabellen erstellen
Bevor wir ORM für Datenoperationen verwenden, müssen wir die entsprechenden Datenbanktabellen erstellen. Sie können der Datei main.py den folgenden Code hinzufügen:
Base.metadata.create_all(bind=engine)
Der obige Code erstellt Tabellen, die allen definierten Datenmodellen in der Datenbank entsprechen.
5. Beispiele für Datenoperationen
Am Beispiel des Benutzermodells geben wir einige gängige Beispiele für Datenoperationen.
Alle Benutzer abfragen
from sqlalchemy.orm import Session from . import models def get_users(db: Session): return db.query(models.User).all()
Im obigen Code fragen wir alle Benutzerdaten ab und geben sie zurück.
Fragen Sie einen einzelnen Benutzer ab
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()
Im obigen Code fragen wir die Daten eines einzelnen Benutzers nach Benutzer-ID ab und geben sie zurück.
Benutzer erstellen
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
Im obigen Code speichern wir die eingehenden Benutzerdaten in der Datenbank und geben sie zurück.
Benutzer aktualisieren
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
Im obigen Code speichern wir die eingehenden Aktualisierungsdaten über die Benutzer-ID in der Datenbank.
Benutzer löschen
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"}
Im obigen Code löschen wir Benutzerdaten anhand der Benutzer-ID aus der Datenbank.
Fazit:
Anhand der obigen Codebeispiele können wir sehen, dass es relativ einfach ist, die ORM-Bibliothek für Datenoperationen in FastAPI zu verwenden. Mithilfe der ORM-Bibliothek müssen wir keine SQL-Anweisungen direkt schreiben, sondern können Datenbankoperationen über das Objektmodell ausführen, wodurch der Code prägnanter und lesbarer wird. Ich hoffe, dieser Artikel hilft Ihnen dabei, die ORM-Bibliothek für die Datenbearbeitung in Ihrem FastAPI-Projekt zu verwenden.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die ORM-Bibliothek zur Datenbearbeitung in FastAPI. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!