V tejto príručke vám predstavíme nástroje CockroachDB a PonyORM pomocou jazyka Python. Začneme diskusiou o tom, čo sú tieto technológie, a potom prediskutujeme, ako fungujú.
Predtým, ako začneme vytvárať aplikáciu v Pythone s programami CockroachDB a PonyORM, poďme pochopiť, čo sú tieto technológie:
Čo je CockroachDB
CockroachDB je vysoko škálovateľná open-source distribuovaná databáza SQL, ktorá využíva transakčné a konzistentné obchody s kľúčmi a hodnotami.
CockroachDB je veľmi efektívny ako metóda na zabezpečenie perzistencie a obnovy údajov v prípade zlyhania. V prípade zlyhania hardvéru a softvéru môže uchovať údaje pomocou silne konzistentných replikácií svojich údajov a automatických opráv. Pomocou rozhrania SQL API umožňuje program CockroachDB dopytovanie, štruktúrovanie a manipuláciu s údajmi pomocou dotazov SQL.
Pomocou rozhrania SQL API poskytuje program CockroachDB vývojárom ľahký prechod, pretože dostávajú rovnaké známe koncepty. Pretože už má pre väčšinu programovacích jazykov existujúce ovládače SQL, jeho používanie sa stáva pohodlnejším.
Pre lepšie pochopenie vám odporúčame prečítať si dokumentáciu CockroachDB.
https: // linkfy.do / cockroachDocs
Čo je PonyORM
PonyORM je pokročilý Python Object-Relational Mapper. Aj keď existujú ďalšie Python ORM ako Django a SQLAlchemy, PonyORM je výhodný, pretože má funkcie ako podpora zložených kľúčov, automatická optimalizácia dotazov a intuitívna a jednoduchá syntax dotazu.
ORM je jednoducho nástroj, ktorý vám umožní pracovať s databázou SQL pomocou preferovaného programovacieho jazyka. Dáva vývojárom možnosť pracovať s údajmi v databáze vo forme objektov; preto môžete na prácu s údajmi použiť OOP pre svoj jazyk.
Pomocou knižnice PonyORM môžeme na prácu s údajmi v CockroachDB vo forme objektov relačnej databázy používať jazyk Python.
Ako referenciu môžete použiť dokumentáciu PonyORM. Tu je odkaz:
https: // dokumenty.ponyorm.org / toc.html
Ako nainštalovať CockroachDB na Linuxe
Ak chcete nainštalovať CockroachDB na systémoch Linux, postupujte podľa pokynov v tejto príručke a v závislosti od konfigurácie systému budete musieť mať prístup root alebo byť používateľom sudo.
Prvým krokom je zabezpečiť, aby bol váš systém aktuálny, a potom nainštalovať požadované závislosti. Tu je príkaz:
sudo apt-get aktualizácia && sudo apt-get aktualizáciasudo apt-get nainštalovať glibc libncurses tzdata -y
Ďalším krokom je stiahnutie binárneho súboru CockroachDB pomocou nástroja wget, ako je uvedené v nasledujúcom príkaze:
wget -qO- https: // binárne súbory.šváb.com / šváb-v20.2.3.linux-amd64.tgzPo stiahnutí binárneho súboru rozbaľte súbor.
tar -xvf šváb-v20.2.3.linux-amd64.tgzAk chcete spustiť príkazy CockroachDB z ľubovoľného shellu, pridajte do svojej cesty binárny súbor:
cp -i šváb-v20.2.3. linux-amd64 / šváb / usr / bin /Skopírujte požadované knižnice:
mkdir -p / usr / lib / švábcp -i šváb-v20.2.3.linux-amd64 / lib / libgeos.takže / usr / lib / šváb /
cp -i šváb-v20.2.3.linux-amd64 / lib / libgeos_c.takže / usr / lib / šváb /
Po dokončení potvrďte, že máte nainštalovaného Švába:
ktorý šváb/ usr / bin / šváb
Spustite dočasný klaster v pamäti pomocou príkazu:
ukážka švábovVo vnútri klastra môžete spustiť interaktívny shell SQL a zadať platné dotazy SQL:
ZOBRAZIŤ TABUĽKY;Ako nainštalovať PonyORM
Ak chcete nainštalovať PonyORM, mali by ste mať nainštalovanú a spustenú verziu Pythonu. Môžete použiť Python 2 (mŕtvy) alebo Python 3.
Pomocou pipu nainštalujte Pony:
pip3 nainštaluj poníkaAk chcete vyskúšať, či máte nainštalovaný Pony, otvorte tlmočník Pythonu a zadajte kód.
>>> od poníka. orm import *Pretože budeme používať PonyORM s CockroachDB, musíme si nainštalovať požadovaný ovládač. V tomto prípade musíme nainštalovať psycopg2. Pomocou príkazu pip nainštalujte potrebný ovládač.
pip nainštalujte psycopg2-binarySkontrolujte, či máte nainštalovaný Psycopg pomocou interaktívnej relácie pythonu a zadajte príkaz:
import psycopgKeď máte všetko nainštalované, môžete pokračovať a začať pracovať s programami CochroachDB a PonyORM:
Ako zostaviť aplikáciu v Pythone s programami CockroachDB a PonyORM
Ak chcete zostaviť aplikáciu v jazyku Python, začnite spustením interaktívneho shellu SQL pomocou príkazu.
šváb SQLĎalším krokom je vytvorenie databázy a používateľa na interakciu, ktoré môžete vykonať pomocou príkazu:
VYTVORIŤ UŽÍVATEĽA, AK NEJDEBlog CREATE DATABASE;
Pridajte potrebné oprávnenia používateľovi admin pomocou príkazu:
UDELIŤ VŠETKO NA DATABÁZE blog administrátorovi;\ q;
Teraz k sekcii s aplikáciami:
Nasledujúci kód používa PonyORM na interakciu s databázou blogov a na mapovanie objektov a metód Pythonu do databázy SQL.
Nasledujúci kód vykonáva nasledujúce operácie:
od poníka.orm import *importovať čas a čas
database = Databáza ()
db_params = dict (provider = 'šváb', užívateľ = 'admin',
hostiteľ = 'localhost', port = 26257, databáza = 'blog')
trieda Užívateľ (databáza.Subjekt):
first_name = povinný (unicode)
blogs = Set ("Blog")
trieda Blog (databáza.Subjekt):
používateľské meno = požadované (užívateľ)
title = povinný (unicode)
publish_date = Povinné (dátum a čas.dátum)
category = Povinné (unicode)
set_sql_debug (True)
databázy.väzba (** db_params)
databázy.generate_mapping (create_tables = True)
@db_session
def create_blog ():
user = User (first_name = u "Admin")
blog = Blog (používateľské meno = užívateľ,
title = u „Ahoj svet“,
publish_date = datetime.dátum (2021, 1, 1),
kategória = u „Koncept“)
blogy = [
"užívateľ": užívateľ,
"title": "Hello world 1",
„publish_date“: dátum a čas.dátum (2021, 1, 2),
"category": "Koncept"
,
"užívateľ": užívateľ,
"title": "Hello world 2",
„publish_date“: dátum a čas.dátum (2021, 1, 3),
"category": "Koncept"
,
"užívateľ": užívateľ,
"title": "Hello world 3",
„publish_date“: dátum a čas.dátum (2021,1,4),
"category": "Koncept"
]
pre blog v blogoch:
b_ = Blog (** blog)
ak __name__ == "__main__":
create_blog ()
b_ = Používateľ („správca“)
Po spustení aplikácie by sa mal zobraziť výstup podobný tomuto:
ZÍSKAJTE NOVÉ PRIPOJENIEPRIPOJENIE K UVOĽNENIU
ZAPOJTE SA Z MIESTNEHO BAZÉNU
ZAPNITE REŽIM AUTOMOBILU
VYTVORIŤ TABUĽKU „užívateľ“ (
„id“ SÉRIOVÝ ZÁKLADNÝ KLÍČ,
"krstne meno" TEXT NIE JE NULL
)
VYTVORIŤ TABUĽKU „blog“ (
„Id“ SÉRIOVÝ ZÁKLADNÝ KLÍČ,
„Používateľské meno“ INT8 NIE JE NULL,
„Title“ TEXT NIE JE NULOVÝ,
„Publish_date“ DATE NOT NULL,
TEXT „kategórie“ NIE JE NULOVÝ
)
CREATE INDEX "idx_blog__username" ON "blog" ("username")
ALTER TABLE "blog" PRIDAŤ OBMEDZENIE "fk_blog__username" FOREIGN KEY ("username") REFERENCIE "user" ("id") ON DELETE CASCADE
VYBERTE „blog“.„id“, „blog“."používateľské meno", "blog".„title“, „blog“.„publish_date“, „blog“.„kategória“
Z „blogu“ „blogu“
KDE 0 = 1
VYBERTE „používateľ“."id", "užívateľ"."krstné meno"
FROM „užívateľ“ „užívateľ“
KDE 0 = 1
Záver
Pomocou aplikácie vyššie sme vytvorili jednoduchú blogovú aplikáciu, ktorá vytvorí používateľa a priradí blogy používateľskému menu. Údaje sme potom pridali do databázy, na ktorú môžeme dotazovať pomocou dotazov SQL. Aj keď je táto aplikácia jednoduchá, ukazuje, ako môžeme na vytvorenie aplikácie v jazyku Python použiť program CockroachDB a PonyORM.