CRUD-Operationen sind in jeder Webanwendung, die Datenspeicherung und -abruf beinhaltet, unerlässlich. Diese Operationen ermöglichen es Benutzern, neue Datensätze zu erstellen, vorhandene Datensätze abzurufen, vorhandene Datensätze zu aktualisieren und Datensätze aus einer Datenbank zu löschen.
FastAPI macht es einfach, CRUD-Operationen zu implementieren, indem es eine einfache und intuitive Möglichkeit bietet, API-Endpunkte zu definieren und HTTP-Anfragen zu verarbeiten. Es nutzt die Typ-Hinweise von Python, um automatisch interaktive API-Dokumentation zu generieren und Datenvalidierung durchzuführen, was es zu einem leistungsstarken Werkzeug für den Aufbau robuster und gut dokumentierter APIs macht.

In diesem Beitrag werden wir untersuchen, wie man CRUD-Operationen schnell mit FastAPI implementiert. Wir beginnen mit der Einrichtung von FastAPI und der Datenbank und erstellen dann die API-Endpunkte für die CRUD-Operationen. Wir werden auch die Implementierung der Create-, Read-, Update- und Delete-Operationen sowie das Testen und Validieren dieser Operationen behandeln. Also lasst uns anfangen und in die Welt von FastAPI und CRUD-Operationen eintauchen!
Was ist CRUD in FastAPI?
In FastAPI bezieht sich CRUD auf die grundlegenden Operationen, die auf Daten in einer Datenbank oder einem Datenspeichersystem durchgeführt werden können. CRUD steht für Create, Read, Update und Delete und repräsentiert die grundlegenden Funktionalitäten, die für die Verwaltung von Daten in den meisten Anwendungen unerlässlich sind.

Hier ist eine detaillierte Erklärung der CRUD-Operationen in FastAPI:
- Create (C): Diese Operation beinhaltet das Hinzufügen neuer Daten zur Datenbank. In FastAPI können Sie Daten erstellen, indem Sie eine POST-Anfrage an den entsprechenden Endpunkt senden. Um beispielsweise einen neuen Benutzer zum System hinzuzufügen, würden Sie eine POST-Anfrage an den Benutzererstellungs-Endpunkt mit den relevanten Benutzerdetails im Anfragetext senden.
- Read (R): Die Read-Operation dient dem Abrufen vorhandener Daten aus der Datenbank. In FastAPI können Sie Read-Operationen mit GET-Anfragen durchführen. Wenn Sie beispielsweise alle Benutzer oder die Details eines bestimmten Benutzers abrufen möchten, würden Sie eine GET-Anfrage an den jeweiligen Endpunkt senden.
- Update (U): Mit dieser Operation können Sie vorhandene Daten in der Datenbank ändern. In FastAPI können Sie Daten mit PUT- oder PATCH-Anfragen aktualisieren. Die PUT-Anfrage wird verwendet, um die gesamte Ressource zu aktualisieren, während PATCH verwendet wird, um bestimmte Felder der Ressource zu ändern. Um beispielsweise die Informationen eines Benutzers zu aktualisieren, würden Sie eine PUT- oder PATCH-Anfrage an den Benutzerendpunkt mit den aktualisierten Details senden.
- Delete (D): Die Delete-Operation beinhaltet das Entfernen von Daten aus der Datenbank. In FastAPI können Sie Daten mit DELETE-Anfragen löschen. Um beispielsweise einen Benutzer aus dem System zu löschen, würden Sie eine DELETE-Anfrage an den Benutzerendpunkt mit der Kennung oder dem eindeutigen Schlüssel des Benutzers senden.
Wie man CRUD-Operationen mit FastAPI schnell erstellt
Um die CRUD-Funktionalität mit FastAPI zu implementieren, gehen Sie wie folgt vor:
Schritt 1: Installieren Sie FastAPI: Stellen Sie sicher, dass Python auf Ihrem System installiert ist, und führen Sie den folgenden Befehl in der Befehlszeile aus, um FastAPI zu installieren:
pip install fastapi
Schritt 2: Erstellen Sie eine FastAPI-Anwendung: Erstellen Sie eine neue Python-Datei (z. B. main.py) und importieren Sie die erforderlichen Module und Bibliotheken:
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List
app = FastAPI()
Schritt 3: Definieren Sie Datenmodelle: Verwenden Sie Pydantic, um Datenmodelle zu definieren. Zum Beispiel:
class Item(BaseModel):
id: int
name: str
price: float
Schritt 4: Erstellen Sie CRUD-Routen und -Handler: Verwenden Sie FastAPI, um Routen und entsprechende Handling-Funktionen für CRUD-Operationen zu erstellen. Hier ist ein Beispiel:
items = []
@app.get("/items", response_model=List[Item])
async def read_items():
return items
@app.post("/items", response_model=Item)
async def create_item(item: Item):
items.append(item)
return item
@app.put("/items/{item_id}", response_model=Item)
async def update_item(item_id: int, item: Item):
items[item_id] = item
return item
@app.delete("/items/{item_id}")
async def delete_item(item_id: int):
del items[item_id]
return {"message": "Item deleted"}
Schritt 5: Führen Sie die Anwendung aus: Um die FastAPI-Anwendung auszuführen und die APIRouter-Funktionalität zu testen, verwenden Sie einen ASGI-Server wie uvicorn. Stellen Sie sicher, dass Sie uvicorn installiert haben:
pip install uvicorn
Öffnen Sie in Ihrem IDE-Editor das Terminal, navigieren Sie zu dem Verzeichnis, in dem die Datei main.py gespeichert ist, und führen Sie den folgenden Befehl aus, um die Anwendung zu starten:
uvicorn main:app --reload
Dadurch wird die FastAPI-Anwendung auf dem Standardport (normalerweise 8000) mit aktivierter automatischem Neuladen gestartet, sodass die Anwendung automatisch neu geladen wird, wenn Sie Codeänderungen vornehmen.
Schritt 6: Testen Sie die CRUD-Operation
Verwenden Sie ein HTTP-Client-Tool (z. B. cURL oder Apidog), um Anfragen zu senden und die Create-, Read-, Update- und Delete-Funktionen zu testen. Hier sind einige Beispielanfragen:
- Erstellen Sie ein neues Element: Senden Sie eine POST-Anfrage mit dem Anfragetext, um ein neues Element zu erstellen.
POST http://localhost:8000/items
{
"id": 1,
"name": "Apple",
"price": 0.5
}

- Holen Sie sich alle Elemente: Senden Sie eine GET-Anfrage, um alle Elemente abzurufen.
GET http://localhost:8000/items

- Aktualisieren Sie ein Element: Senden Sie eine PUT-Anfrage mit dem Anfragetext, um ein Element zu aktualisieren.
GET http://localhost:8000/items

- Löschen Sie ein Element: Senden Sie eine DELETE-Anfrage, um ein Element zu löschen.
DELETE http://localhost:8000/items/1

Schließlich können wir Tests für die Löschoperation in Apidog schreiben. Wir können eine DELETE-Anfrage an den Lösch-Endpunkt simulieren und prüfen, ob der Antwortstatuscode 200 ist (was auf ein erfolgreiches Löschen hindeutet). Anschließend können wir versuchen, die gelöschten Daten aus der Datenbank abzurufen und sicherzustellen, dass sie nicht existieren.
Durch das Schreiben dieser Tests können wir sicherstellen, dass unsere CRUD-Operationen korrekt funktionieren und verschiedene Szenarien wie ungültige Eingaben oder nicht vorhandene Daten verarbeiten.
Bonus-Tipps
Verwenden Sie IDE-Unterstützung wie Visual Studio Code für eine verbesserte Entwicklungseffizienz mit Code-Autovervollständigung, Fehlerprüfung und Debugging-Funktionen.
- Wenn Sie FastAPI verwenden, nutzen Sie die IDE-Unterstützung wie Visual Studio Code für eine verbesserte Entwicklungseffizienz mit Code-Autovervollständigung, Fehlerprüfung und Debugging-Funktionen.
- Organisieren Sie Ihre Codebasis, indem Sie Routen und Handling-Funktionen in verschiedene Module aufteilen, um die Wartbarkeit und Skalierbarkeit zu fördern. Nutzen Sie die asynchrone Unterstützung von FastAPI für asynchrone Operationen, um die Leistung und Parallelitätsfähigkeiten zu verbessern.
- Sichern Sie die API mit geeigneten Authentifizierungs- und Autorisierungsmechanismen. Verwenden Sie Pydantic-Modelle für Datenvalidierung und -serialisierung, um die Datenkonsistenz aufrechtzuerhalten und Fehler effektiv zu behandeln. Implementieren Sie CORS für die Cross-Origin-Ressourcenfreigabe, falls erforderlich.
- Erstellen Sie umfassende Unit- und Integrationstests, um die Zuverlässigkeit und Funktionalität der API sicherzustellen. Behandeln Sie Fehler auf elegante Weise mit der Fehlerbehandlung und benutzerdefinierten Fehlerantworten von FastAPI. Überwachen Sie die Leistung mit Protokollen und Profilern und halten Sie FastAPI und seine Abhängigkeiten auf dem neuesten Stand, um Fehler zu beheben und neue Funktionen zu erhalten.
Wenn Sie diese Praktiken befolgen, können Sie robuste und effiziente APIs mit FastAPI entwickeln und Ihren Entwicklungs- und Bereitstellungsprozess optimieren.