In questa guida, ti presenteremo CockroachDB e PonyORM usando Python. Inizieremo discutendo di cosa sono queste tecnologie e poi discuteremo di come funzionano.
Prima di iniziare a creare un'applicazione Python con CockroachDB e PonyORM, capiamo quali sono queste tecnologie:
Cos'è CockroachDB
CockroachDB è un database SQL distribuito, open source e altamente scalabile che utilizza archivi chiave-valore transazionali e coerenti.
CockroachDB è un metodo molto efficiente per garantire la persistenza e il ripristino dei dati in caso di guasto. In caso di guasti hardware e software, può preservare i dati utilizzando repliche forti e coerenti dei propri dati e riparazioni automatiche. Utilizzando l'API SQL, CockroachDB ti consente di interrogare, strutturare e manipolare i dati utilizzando le query SQL.
Utilizzando l'API SQL, CockroachDB fornisce agli sviluppatori una facile transizione poiché ottengono gli stessi concetti familiari. Poiché dispone già di driver SQL esistenti per la maggior parte dei linguaggi di programmazione, utilizzarlo diventa più comodo.
Ti consigliamo di consultare la documentazione di CockroachDB per una migliore comprensione.
https://linkfy.a/scarafaggioDocs
Cos'è PonyORM
PonyORM è un mappatore relazionale a oggetti Python avanzato. Sebbene esistano altri ORM Python come Django e SQLAlchemy, PonyORM è vantaggioso perché ha funzionalità come il supporto per chiavi composite, ottimizzazione automatica delle query e sintassi di query intuitiva e diretta.
Un ORM è semplicemente uno strumento che ti consente di lavorare con un database SQL utilizzando il tuo linguaggio di programmazione preferito. Offre agli sviluppatori la possibilità di lavorare con i dati all'interno di un database sotto forma di oggetti; quindi, puoi usare OOP per la tua lingua per lavorare con i dati.
Utilizzando la libreria PonyORM, possiamo utilizzare il linguaggio Python per lavorare con i dati in CockroachDB sotto forma di oggetti del database relazionale.
Puoi usare la documentazione di PonyORM come riferimento. Ecco il collegamento:
https://docs.ponyorm.org/toc.html
Come installare CockroachDB su Linux
Per installare CockroachDB su sistemi Linux, segui i passaggi in questa guida e, a seconda della configurazione del tuo sistema, dovrai avere accesso root o essere un utente sudo.
Il primo passo è assicurarsi che il proprio sistema sia aggiornato e quindi installare le dipendenze richieste. Ecco il comando per questo:
sudo apt-get update && sudo apt-get upgradesudo apt-get install glibc libncurses tzdata -y
Il prossimo passo è scaricare il binario CockroachDB usando wget, come mostrato nel comando seguente:
wget -qO- https://binari.scarafaggio.com/scarafaggio-v20.2.3.linux-amd64.tgzUna volta scaricato il binario, estrai il file.
tar -xvf scarafaggio-v20.2.3.linux-amd64.tgzPer avviare i comandi CockroachDB da qualsiasi shell, aggiungi il binario al tuo percorso:
cp -i scarafaggio-v20.2.3. linux-amd64/scarafaggio /usr/bin/Copia le librerie richieste:
mkdir -p /usr/lib/scarafaggiocp -i scarafaggio-v20.2.3.linux-amd64/lib/libgeos.quindi /usr/lib/scarafaggio/
cp -i scarafaggio-v20.2.3.linux-amd64/lib/libgeos_c.quindi /usr/lib/scarafaggio/
Una volta completato, conferma di aver installato Cockroach:
quale scarafaggio/usr/bin/scarafaggio
Avvia un cluster in memoria temporaneo utilizzando il comando:
dimostrazione di scarafaggiAll'interno del cluster, puoi eseguire una shell SQL interattiva per inserire query SQL valide:
MOSTRA TABELLE;Come installare PonyORM
Per installare PonyORM, dovresti avere una versione installata e funzionante di Python. Puoi usare sia Python 2 (morto) che Python 3.
Usando pip, installa Pony:
pip3 installa ponyPer verificare se hai installato Pony, apri l'interprete Python e inserisci il codice.
>>> da pony. importazione dell'ordine *Poiché utilizzeremo PonyORM con CockroachDB, dobbiamo installare il driver richiesto. In questo caso, dobbiamo installare psycopg2. Usa il comando pip per installare il driver necessario.
pip install psycopg2-binaryControlla se hai installato Psycopg usando la sessione Python interattiva e inserisci il comando:
import psycopgUna volta installato tutto, puoi andare avanti e iniziare a lavorare con CochroachDB e PonyORM:
Come costruire un'applicazione Python con CockroachDB e PonyORM
Per creare un'applicazione Python, inizia avviando una shell SQL interattiva usando il comando.
scarafaggio SQLIl prossimo passo è creare un database e un utente con cui interagire, cosa che puoi fare usando il comando:
CREA UTENTE SE NON ESISTE admin;blog CREA DATABASE;
Aggiungi i privilegi necessari all'utente amministratore utilizzando il comando:
CONCEDERE TUTTO SU DATABASE blog AD admin;\q;
Ora per la sezione app:
Il codice seguente utilizza PonyORM per interagire con il database del blog e mappare gli oggetti e i metodi Python nel database SQL.
Il codice sottostante esegue le seguenti operazioni:
da pony.importazione dell'ordine *data e ora di importazione
banca dati = banca dati ()
db_params = dict(provider='scarafaggio', utente='admin',
host='localhost', porta=26257, database='blog')
classe Utente (database.Entità):
first_name = Richiesto (unicode)
blog = Set("Blog")
classe Blog(database.Entità):
nome utente = Richiesto (Utente)
titolo = Richiesto (unicode)
publish_date = Richiesto (datetime.Data)
categoria = Richiesto (unicode)
set_sql_debug(Vero)
Banca dati.bind(**db_params)
Banca dati.generate_mapping(create_tables=True)
@db_session
def create_blog():
utente = Utente(first_name=u"Admin")
blog = Blog (nome utente=utente,
title=u"Ciao mondo",
publish_date=datetime.data(2021, 1, 1),
categoria=u"Bozza")
blog = [
"utente": utente,
"titolo": "Ciao mondo 1",
"data_pubblicazione": data e ora.data (2021, 1, 2),
"categoria": "Bozza"
,
"utente": utente,
"titolo": "Ciao mondo 2",
"data_pubblicazione": data e ora.data (2021, 1, 3),
"categoria": "Bozza"
,
"utente": utente,
"titolo": "Ciao mondo 3",
"data_pubblicazione": data e ora.data (2021,1,4),
"categoria": "Bozza"
]
per blog nei blog:
b_ = Blog(**blog)
if __name__ == "__main__":
crea_blog()
b_ = Utente("Amministratore")
Una volta eseguita l'app, dovresti vedere un output simile a quello mostrato di seguito:
OTTIENI NUOVA CONNESSIONERILASCIO CONNESSIONE
CONNESSIONE DALLA PISCINA LOCALE
PASSA ALLA MODALITÀ AUTOCOMMIT
CREA TABELLA "utente" (
CHIAVE PRIMARIA SERIALE "id",
"first_name" TESTO NON NULL
)
CREA TABELLA “blog” (
CHIAVE PRIMARIA SERIALE “id”,
“nome utente” INT8 NOT NULL,
“titolo” TESTO NON NULL,
“data_pubblicazione” DATA NOT NULL,
“categoria” TESTO NON NULL
)
CREA INDICE "idx_blog__username" SU "blog" ("username")
ALTER TABLE "blog" ADD CONSTRAINT "fk_blog__username" CHIAVE ESTERA ("username") REFERENZE "user" ("id") ON DELETE CASCADE
SELEZIONA "blog"."id", "blog"."nome utente", "blog"."titolo", "blog"."data_pubblicazione", "blog"."categoria"
DA "blog" "blog"
DOVE 0 = 1
SELEZIONA "utente"."id", "utente"."nome di battesimo"
FROM "utente" "utente"
DOVE 0 = 1
Conclusione
Utilizzando l'app sopra, abbiamo creato una semplice applicazione per blog che crea un utente e assegna i blog al nome utente. Abbiamo quindi aggiunto i dati nel database, che possiamo interrogare utilizzando le query SQL. Sebbene l'app sia semplice, illustra come possiamo utilizzare CockroachDB e PonyORM per creare un'app Python.