FastAPI stesso è un framework Web ad alte prestazioni. Non supporta direttamente le operazioni del database, ma può interagire con vari database integrando varie librerie di database. FastAPI supporta quasi tutti i database relazionali e non relazionali, che dipende principalmente dalla libreria di database scelta (come la libreria ORM) e dal driver di database corrispondente. Di seguito sono riportati alcuni database comunemente supportati e le relative librerie di FastAPI:
Base di dati relazionale
PostgreSQL:
Può essere integrato con FastAPI tramite librerie ORM come SQLAlchemy e Tortoise ORM.
Per l'accesso asincrono al database, puoi utilizzare asyncpg come driver asincrono per PostgreSQL.
Il mio SQL:
Puoi anche utilizzare SQLAlchemy come libreria ORM, ma devi connetterti al database MySQL tramite librerie come pymysql o mysqlclient.
SQLite:
Ideale per piccoli progetti e sviluppo di prototipi perché è un database leggero e basato su file che non richiede l'esecuzione di un processo server separato.
È possibile utilizzare direttamente le librerie ORM come SQLAlchemy per operare.
Oracolo:
FastAPI può interagire con i database Oracle tramite librerie ORM come SQLAlchemy.
È necessario installare il driver del database Oracle corrispondente, come cx_Oracle.
Microsoft SQL Server:
È inoltre possibile utilizzare librerie ORM come SQLAlchemy per funzionare, ma è necessario installare librerie come pyodbc o pymssql per connettersi al database SQL Server.
database non relazionale
MongoDB:
FastAPI può interagire con MongoDB attraverso librerie come MongoEngine e Motor.
Motor è un driver MongoDB Python asincrono che si adatta bene alle funzionalità asincrone di FastAPI.
Rosso:
Sebbene Redis sia generalmente considerato un archivio di strutture dati in memoria, può essere utilizzato anche in scenari come la memorizzazione nella cache e la messaggistica.
FastAPI può interagire in modo asincrono con Redis tramite librerie come aioredis.
Selezione della libreria del database
SQLAlchimia:
È una libreria ORM molto popolare che fornisce ricche funzioni, come la definizione del modello, la mappatura delle relazioni, la gestione delle sessioni, ecc.
Supporta più backend di database e si integra perfettamente con FastAPI.
Tartaruga ORM:
È una libreria ORM asincrona progettata specificamente per Python, che fornisce un'esperienza di utilizzo simile a Django ORM.
Si abbina perfettamente alle funzionalità asincrone di FastAPI ed è adatto a scenari che richiedono un'elaborazione con concorrenza elevata.
Pidantico:
Sebbene non sia una libreria di database, svolge un ruolo importante in FastAPI per la convalida e la serializzazione dei dati.
Viene utilizzato insieme alle librerie ORM come SQLAlchemy per migliorare ulteriormente l'efficienza e la sicurezza dell'elaborazione dei dati.
Per riassumere, FastAPI supporta una varietà di database, a seconda della libreria di database scelta e del driver di database corrispondente. Quando si sceglie, è necessario considerare fattori quali le esigenze specifiche del progetto, le caratteristiche prestazionali del database e la familiarità del team di sviluppo.