Heim >Backend-Entwicklung >Python-Tutorial >So verwenden Sie die ORM-Bibliothek zur Datenbearbeitung in FastAPI

So verwenden Sie die ORM-Bibliothek zur Datenbearbeitung in FastAPI

王林
王林Original
2023-07-30 17:00:412813Durchsuche

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.

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

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

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

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

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

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