Heim >Backend-Entwicklung >Python-Tutorial >Erstellen Sie leistungsstarke, asynchrone Webanwendungen mit FastAPI
Verwenden Sie FastAPI, um leistungsstarke, asynchrone Webanwendungen zu erstellen
Mit der rasanten Entwicklung des Internets sind die Leistung und Effizienz von Webanwendungen zu einem der Schwerpunkte der Benutzer geworden. Herkömmliche Web-Frameworks sind bei der Bearbeitung einer großen Anzahl von Anfragen oft ineffizient und können hohe Anforderungen an die Parallelität nicht erfüllen. Um die Leistung und Effizienz von Webanwendungen zu verbessern, wurde FastAPI ins Leben gerufen.
FastAPI ist ein modernes Python-basiertes Web-Framework, das Einfachheit und Benutzerfreundlichkeit beibehält und gleichzeitig eine hervorragende Leistung bietet. FastAPI übernimmt ein asynchrones Programmiermodell und nutzt Pythons Coroutinen und asynchrone E/A-Mechanismen, um Anwendungen die effiziente Verarbeitung einer großen Anzahl gleichzeitiger Anforderungen zu ermöglichen. Im Folgenden wird erläutert, wie Sie mit FastAPI eine leistungsstarke, asynchrone Webanwendung erstellen.
Zuerst müssen Sie FastAPI mit dem Pip-Befehl installieren:
pip install fastapi
Als nächstes erstellen Sie eine Python-Datei, z. B. main.py, und schreiben Sie den folgenden Code:
from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello, World!"}
Der obige Code erstellt eine FastAPI-Anwendung und definiert eine GET-Anforderungsroute. „/“ steht für das Stammverzeichnis. Beim Zugriff auf das Stammverzeichnis wird eine JSON-Antwort mit dem Inhalt „Hello, World!“ zurückgegeben.
Verwenden Sie uvicorn, um die FastAPI-Anwendung auszuführen:
uvicorn main:app --reload
Jetzt wird die FastAPI-Anwendung ausgeführt. Öffnen Sie den Browser und besuchen Sie http://localhost:8000. Dort wird die Antwort „Hello, World!“ angezeigt.
FastAPI unterstützt die Verwendung asynchroner Verarbeitungsfunktionen zur Bearbeitung von Anforderungen. Das Folgende ist ein Beispiel für die Verwendung einer asynchronen Verarbeitungsfunktion:
from fastapi import FastAPI import asyncio app = FastAPI() async def background_task(): while True: print("Running background task...") await asyncio.sleep(1) @app.get("/") async def root(): asyncio.create_task(background_task()) return {"message": "Hello, World!"}
Im obigen Code definieren wir eine asynchrone Aufgabe „background_task()“, die jede Sekunde „Laufende Hintergrundaufgabe…“ ausgibt. In der Handlerfunktion der Root-Route „/“ verwenden wir asyncio.create_task(), um eine Hintergrundaufgabe zu erstellen. Auf diese Weise wird beim Zugriff auf das Stammverzeichnis gleichzeitig die Ausführung von background_task () gestartet.
FastAPI unterstützt die Übergabe von Parametern über URL-Pfadparameter, Abfrageparameter, Anforderungstexte usw., was sehr flexibel ist. Das Folgende ist ein Beispiel für die Verwendung von URL-Pfadparametern und Abfrageparametern:
from fastapi import FastAPI app = FastAPI() @app.get("/items/{item_id}") async def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q}
Im obigen Code definieren wir eine GET-Anforderungsroute mit dem Pfadparameter item_id und dem Abfrageparameter q. Beim Zugriff beispielsweise auf /items/42?q=test wird die folgende Antwort zurückgegeben:
{ "item_id": 42, "q": "test" }
FastAPI unterstützt von Natur aus asynchrone Operationen und kann problemlos mit asynchronen Datenbanken interagieren. Das Folgende ist ein Beispiel für die Verwendung asynchroner Datenbankoperationen:
from fastapi import FastAPI from databases import Database app = FastAPI() database = Database("sqlite:///test.db") @app.on_event("startup") async def startup(): await database.connect() @app.on_event("shutdown") async def shutdown(): await database.disconnect() @app.get("/") async def root(): query = "SELECT * FROM items" items = await database.fetch_all(query) return {"items": items}
Im obigen Code verwenden wir die Datenbankbibliothek, um eine SQLite-Datenbankverbindung zu erstellen und Verbindungs- und Trennvorgänge durchzuführen, wenn die Anwendung gestartet und heruntergefahren wird. In der Handlerfunktion der Root-Route führen wir eine SELECT-Abfrage aus und geben die Ergebnisse zurück.
Verwenden Sie Tools wie uvicorn, Gunicorn usw., um FastAPI-Anwendungen in der Produktionsumgebung bereitzustellen. Verwenden Sie beispielsweise Gunicorn, um eine FastAPI-Anwendung bereitzustellen:
gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app
Der obige Befehl startet 4 Prozesse und verwendet UvicornWorker zur Bearbeitung von Anfragen.
Zusammenfassung
FastAPI ist ein sehr leistungsstarkes modernes Web-Framework, das uns beim Erstellen leistungsstarker, asynchroner Webanwendungen helfen kann. Durch die Nutzung der asynchronen Programmierfunktionen von Python können wir problemlos eine große Anzahl gleichzeitiger Anforderungen verarbeiten und effiziente Datenbankoperationen erzielen. Unabhängig davon, ob Sie ein persönliches Projekt entwickeln oder eine Anwendung auf Unternehmensebene erstellen, ist FastAPI eine Option, die einen Versuch wert ist.
Das obige ist der detaillierte Inhalt vonErstellen Sie leistungsstarke, asynchrone Webanwendungen mit FastAPI. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!