V tem priročniku vam bomo predstavili CockroachDB in PonyORM z uporabo Pythona. Najprej bomo razpravljali o tem, katere tehnologije so, nato pa o njihovem delovanju.
Preden začnemo graditi aplikacijo Python s programoma CockroachDB in PonyORM, razjasnimo, kaj so te tehnologije:
Kaj je CockroachDB
CockroachDB je zelo razširljiva, odprtokodna, porazdeljena baza podatkov SQL, ki uporablja transakcijske in dosledne shrambe ključ-vrednost.
CockroachDB je zelo učinkovit kot metoda za zagotavljanje obstojnosti podatkov in njihovo obnovitev v primeru okvare. V primeru napak strojne in programske opreme lahko podatke ohrani z uporabo doslednih kopij svojih podatkov in samodejnimi popravili. Z uporabo API-ja SQL CockroachDB omogoča poizvedbe, strukturiranje in obdelavo podatkov s pomočjo poizvedb SQL.
Z uporabo API-ja SQL CockroachDB razvijalcem omogoča enostaven prehod, saj dobijo enake znane koncepte. Ker že ima gonilnike SQL za večino programskih jezikov, je uporaba v njih bolj prijetna.
Za boljše razumevanje priporočamo, da si ogledate dokumentacijo CockroachDB.
https: // linkfy.do / ščurkiDocs
Kaj je PonyORM
PonyORM je napreden Python-ov objektno-relacijski zemljevid. Čeprav obstajajo še drugi Python ORM, kot sta Django in SQLAlchemy, je PonyORM ugoden, saj ima funkcije, kot so podpora za sestavljene ključe, samodejna optimizacija poizvedb ter intuitivna in enostavna sintaksa poizvedb.
ORM je preprosto orodje, ki vam omogoča delo z bazo podatkov SQL z uporabo želenega programskega jezika. Razvijalcem omogoča delo s podatki znotraj baze podatkov v obliki predmetov; zato lahko za delo s podatki za svoj jezik uporabite OOP.
Z uporabo knjižnice PonyORM lahko jezik Python uporabljamo za delo s podatki v CockroachDB v obliki predmetov relacijske baze podatkov.
Za referenco lahko uporabite dokumentacijo PonyORM. Tu je povezava:
https: // docs.ponyorm.org / toc.html
Kako namestiti CockroachDB v Linux
Če želite namestiti CockroachDB v sisteme Linux, sledite navodilom v tem priročniku in, odvisno od konfiguracije sistema, boste morali imeti root dostop ali biti uporabnik sudo.
Prvi korak je zagotoviti, da je vaš sistem posodobljen, in nato namestiti zahtevane odvisnosti. Tu je ukaz za to:
posodobitev sudo apt-get && nadgradnja sudo apt-getsudo apt-get install glibc libncurses tzdata -y
Naslednji korak je prenos binarnega programa CockroachDB z uporabo wgeta, kot je prikazano v spodnjem ukazu:
wget -qO- https: // binarne datoteke.ščurek.com / ščurka-v20.2.3.linux-amd64.tgzKo prenesete binarno datoteko, jo izvlecite.
tar -xvf ščurka-v20.2.3.linux-amd64.tgzČe želite zagnati ukaze CockroachDB iz katere koli lupine, dodajte binarno datoteko na svojo pot:
cp -i ščurka-v20.2.3. linux-amd64 / ščurek / usr / bin /Kopirajte zahtevane knjižnice:
mkdir -p / usr / lib / ščurkacp -i ščurka-v20.2.3.linux-amd64 / lib / libgeos.tako / usr / lib / ščurka /
cp -i ščurka-v20.2.3.linux-amd64 / lib / libgeos_c.tako / usr / lib / ščurka /
Ko končate, potrdite, da ste namestili Ščurka:
kateri ščurek/ usr / bin / ščurka
Zaženite začasno gručo v pomnilniku z ukazom:
demo ščurkaZnotraj gruče lahko zaženete interaktivno lupino SQL za vnos veljavnih poizvedb SQL:
PRIKAŽI MIZE;Kako namestiti PonyORM
Če želite namestiti PonyORM, morate imeti nameščeno in zagnano različico Pythona. Uporabite lahko Python 2 (mrtev) ali Python 3.
Z uporabo pipa namestite Pony:
pip3 namesti ponijaČe želite preizkusiti, ali imate nameščen Pony, odprite tolmač Python in vnesite kodo.
>>> od ponija. uvoz orm *Ker bomo PonyORM uporabljali z CockroachDB, moramo namestiti zahtevani gonilnik. V tem primeru moramo namestiti psycopg2. Z ukazom pip namestite potreben gonilnik.
pip namestite psycopg2-binarnoPreverite, ali imate Psycopg nameščen z interaktivno sejo python in vnesite ukaz:
uvozi psycopgKo ste vse namestili, lahko nadaljujete in začnete sodelovati s CochroachDB in PonyORM:
Kako zgraditi aplikacijo Python z CockroachDB in PonyORM
Če želite zgraditi aplikacijo python, začnite z zagonom interaktivne lupine SQL z ukazom.
ščurka SQLNaslednji korak je ustvariti bazo podatkov in uporabnika za interakcijo, kar lahko storite z ukazom:
USTVARI UPORABNIKA, ČE NE OBSTAJA admin;USTVARI DATABASE blog;
S skrbniškim uporabnikom dodajte potrebne privilegije z ukazom:
DARI VSE NA blogu DATABASE administratorju;\ q;
Zdaj za razdelek z aplikacijami:
Spodnja koda uporablja PonyORM za interakcijo z bazo podatkov spletnega dnevnika in preslikavo objektov in metod Python v bazo podatkov SQL.
Spodnja koda izvaja naslednje operacije:
od ponija.uvoz orm *uvozi datum in čas
database = Database ()
db_params = dict (ponudnik = 'ščurka', uporabnik = 'admin',
gostitelj = 'localhost', vrata = 26257, zbirka podatkov = 'blog')
razred Uporabnik (baza podatkov.Entiteta):
first_name = Zahtevano (unicode)
blogs = Set ("Blog")
razred Blog (baza podatkov.Entiteta):
uporabniško ime = obvezno (uporabnik)
title = obvezno (unicode)
objavi_date = Zahtevano (datum in čas.datum)
kategorija = obvezno (unicode)
set_sql_debug (True)
zbirka podatkov.veži (** db_params)
zbirka podatkov.generiraj_mapo (create_tables = True)
@db_session
def create_blog ():
uporabnik = uporabnik (first_name = u "Admin")
blog = Blog (uporabniško ime = uporabnik,
title = u "Pozdravljeni svet",
objavi_date = datum in čas.datum (2021, 1, 1),
kategorija = u "Osnutek")
blogi = [
"uporabnik": uporabnik,
"title": "Pozdravljeni svet 1",
"objavi_datum": datum in čas.datum (2021, 1, 2),
"category": "Osnutek"
,
"uporabnik": uporabnik,
"title": "Pozdravljeni svet 2",
"objavi_datum": datum in čas.datum (2021, 1, 3),
"category": "Osnutek"
,
"uporabnik": uporabnik,
"title": "Pozdravljeni svet 3",
"objavi_datum": datum in čas.datum (2021,1,4),
"category": "Osnutek"
]
za blog v blogih:
b_ = Blog (** blog)
če je __name__ == "__glavna__":
create_blog ()
b_ = Uporabnik ("Skrbnik")
Ko zaženete aplikacijo, se prikaže izhod, podoben spodnjemu:
PRIDOBITE NOVO POVEZAVOSPROŠČANJE POVEZAVE
PRIDOBITE POVEZAVO Z LOKALNEGA BAZENA
PREKLOPITE NA NAČIN AVTOMAKSIMA
USTVARI TABELO "uporabnik" (
"id" SERIJSKI PRIMARNI KLJUČ,
"first_name" BESEDILO NI NULL
)
USTVARI TABELO “blog” (
“Id” PREDVIDNI KLJUČ,
»Uporabniško ime« INT8 NI NULL,
“Naslov” BESEDILO NI NULL,
“Objavi_datum” DATUM NI NULL,
„Kategorija“ BESEDILO NI NULL
)
USTVARI INDEKS "idx_blog__username" ON "blog" ("uporabniško ime")
ALTER TABLE "blog" DODAJ OMEJITEV "fk_blog__username" TUJI KLJUČ ("uporabniško ime") SE sklicuje na "uporabnik" ("id") IZBRIŠI KASKADO
IZBERI "blog"."id", "blog"."uporabniško ime", "blog"."naslov", "blog"."objavi_datum", "blog"."kategorija"
IZ "blog" "blog"
KJE 0 = 1
IZBERI "uporabnik"."id", "user"."ime"
OD "uporabnik" "uporabnik"
KJE 0 = 1
Zaključek
Z zgornjo aplikacijo smo ustvarili preprosto blog aplikacijo, ki ustvari uporabnika in uporabniškemu imenu dodeli bloge. Nato smo podatke dodali v bazo podatkov, ki jih lahko poizvedujemo z uporabo poizvedb SQL. Čeprav je aplikacija preprosta, ponazarja, kako lahko s CockroachDB in PonyORM ustvarimo aplikacijo Python.