V této příručce vám představíme CockroachDB a PonyORM pomocí Pythonu. Začneme tím, že probereme, o jaké technologie jde, a poté probereme, jak fungují.
Než začneme s tvorbou aplikace v Pythonu s CockroachDB a PonyORM, pochopme, o jaké technologie jde:
Co je CockroachDB
CockroachDB je vysoce škálovatelná open-source distribuovaná databáze SQL, která využívá transakční a konzistentní úložiště klíč-hodnota.
CockroachDB je velmi efektivní metoda pro zajištění perzistence a obnovy dat v případě poruchy. V případě selhání hardwaru a softwaru může uchovat data pomocí silně konzistentních replikací svých dat a automatických oprav. Pomocí rozhraní SQL API vám CockroachDB umožňuje dotazovat, strukturovat a manipulovat s daty pomocí dotazů SQL.
Pomocí rozhraní SQL API poskytuje CockroachDB vývojářům snadný přechod, protože získávají stejné známé koncepty. Protože již má pro většinu programovacích jazyků existující ovladače SQL, jeho používání se stává pohodlnějším.
Doporučujeme vám, abyste si pro lepší porozumění prohlédli dokumentaci CockroachDB.
https: // linkfy.do / cockroachDocs
Co je PonyORM
PonyORM je pokročilý Python Object-Relational Mapper. I když existují další Python ORM, jako jsou Django a SQLAlchemy, PonyORM je výhodný, protože má funkce, jako je podpora složených klíčů, automatická optimalizace dotazů a intuitivní a přímá syntaxe dotazu.
ORM je jednoduše nástroj, který vám umožní pracovat s databází SQL pomocí preferovaného programovacího jazyka. Poskytuje vývojářům schopnost pracovat s daty v databázi ve formě objektů; proto můžete použít OOP pro svůj jazyk pro práci s daty.
Pomocí knihovny PonyORM můžeme používat jazyk Python pro práci s daty v CockroachDB ve formě objektů relační databáze.
Pro referenci můžete použít dokumentaci PonyORM. Zde je odkaz:
https: // dokumenty.ponyorm.org / toc.html
Jak nainstalovat CockroachDB na Linuxu
Chcete-li nainstalovat CockroachDB na systémy Linux, postupujte podle pokynů v této příručce a v závislosti na konfiguraci vašeho systému budete muset mít přístup root nebo být uživatelem sudo.
Prvním krokem je zajistit, aby byl váš systém aktuální, a poté nainstalovat požadované závislosti. Zde je příkaz:
sudo apt-get update && sudo apt-get upgradesudo apt-get install glibc libncurses tzdata -y
Dalším krokem je stažení binárního souboru CockroachDB pomocí wget, jak ukazuje následující příkaz:
wget -qO- https: // binární soubory.šváb.com / šváb-v20.2.3.linux-amd64.tgzJakmile máte binární soubor stažený, rozbalte soubor.
tar -xvf šváb-v20.2.3.linux-amd64.tgzChcete-li spustit příkazy CockroachDB z libovolného prostředí, přidejte binární soubor do své cesty:
cp -i šváb-v20.2.3. linux-amd64 / šváb / usr / bin /Zkopírujte požadované knihovny:
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 nainstalován Šváb:
který šváb/ usr / bin / šváb
Spusťte dočasný klastr v paměti pomocí příkazu:
demo švábůUvnitř klastru můžete spustit interaktivní prostředí SQL a zadat platné dotazy SQL:
ZOBRAZIT TABULKY;Jak nainstalovat PonyORM
Chcete-li nainstalovat PonyORM, měli byste mít nainstalovanou a spuštěnou verzi Pythonu. Můžete použít Python 2 (mrtvý) nebo Python 3.
Pomocí pip nainstalujte Pony:
pip3 install ponyChcete-li otestovat, zda máte nainstalovaný Pony, otevřete překladač Pythonu a zadejte kód.
>>> od poníka. orm import *Protože budeme používat PonyORM s CockroachDB, musíme nainstalovat požadovaný ovladač. V tomto případě musíme nainstalovat psycopg2. Pomocí příkazu pip nainstalujte potřebný ovladač.
pip nainstalujte psycopg2-binaryZkontrolujte, zda máte Psycopg nainstalovaný pomocí interaktivní relace pythonu a zadejte příkaz:
import psycopgJakmile máte vše nainstalované, můžete pokračovat a začít pracovat s CochroachDB a PonyORM:
Jak vytvořit Pythonovou aplikaci s CockroachDB a PonyORM
Chcete-li vytvořit aplikaci v pythonu, začněte spuštěním interaktivního prostředí SQL pomocí příkazu.
šváb SQLDalším krokem je vytvoření databáze a uživatele, se kterým můžete pracovat, což můžete provést pomocí příkazu:
VYTVOŘIT UŽIVATELE, POKUD NEEXISTUJE admin;Blog CREATE DATABASE;
Přidejte potřebná oprávnění uživateli správce pomocí příkazu:
UDĚLIT VŠECHNY DATABÁZE blog administrátorovi;\ q;
Nyní pro sekci aplikace:
Níže uvedený kód používá PonyORM k interakci s databází blogů a mapování objektů a metod Pythonu na databázi SQL.
Níže uvedený kód provádí následující operace:
od poníka.orm import *import datetime
databáze = databáze ()
db_params = dict (poskytovatel = 'šváb', uživatel = 'admin',
host = 'localhost', port = 26257, database = 'blog')
třída Uživatel (databáze.Subjekt):
first_name = Povinné (unicode)
blogy = Set ("Blog")
třída Blog (databáze.Subjekt):
uživatelské jméno = požadováno (uživatel)
title = Povinné (unicode)
publish_date = Povinné (datetime.datum)
category = Povinné (unicode)
set_sql_debug (True)
databáze.svázat (** db_params)
databáze.generate_mapping (create_tables = True)
@db_session
def create_blog ():
user = User (first_name = u "Admin")
blog = Blog (uživatelské jméno = uživatel,
title = u „Ahoj světe“,
publish_date = datetime.datum (2021, 1, 1),
kategorie = u „Koncept“)
blogy = [
"uživatel": uživatel,
"title": "Hello world 1",
"publish_date": datetime.datum (2021, 1, 2),
"category": "Koncept"
,
"uživatel": uživatel,
"title": "Hello world 2",
"publish_date": datetime.datum (2021, 1, 3),
"category": "Koncept"
,
"uživatel": uživatel,
"title": "Hello world 3",
"publish_date": datetime.datum (2021,1,4),
"category": "Koncept"
]
pro blog v blogech:
b_ = Blog (** blog)
pokud __name__ == "__main__":
create_blog ()
b_ = Uživatel („Správce“)
Po spuštění aplikace byste měli vidět výstup podobný tomu, který je uveden níže:
ZÍSKEJTE NOVÉ PŘIPOJENÍPŘIPOJENÍ K UVOLNĚNÍ
ZÍSKEJTE PŘIPOJENÍ Z MÍSTNÍHO BAZÉNU
PŘEPNĚTE NA REŽIM AUTOMOBILU
VYTVOŘIT TABULKU „uživatel“ (
"id" SÉRIOVÝ ZÁKLADNÍ KLÍČ,
"first_name" TEXT NENÍ NULL
)
VYTVOŘIT TABULKU „blog“ (
„Id“ SÉRIOVÝ ZÁKLADNÍ KLÍČ,
„Uživatelské jméno“ INT8 NENÍ NULL,
„Název“ TEXT NENÍ NULL,
„Publish_date“ DATE NOT NULL,
„Kategorie“ TEXT NENÍ NULL
)
CREATE INDEX "idx_blog__username" ON "blog" ("uživatelské jméno")
ALTER TABLE "blog" ADD CONSTRAINT "fk_blog__username" FOREIGN KEY ("username") REFERENCES "user" ("id") ON DELETE CASCADE
VYBERTE „blog“."id", "blog"."uživatelské jméno", "blog"."title", "blog"."publish_date", "blog"."kategorie"
Z „blogu“ „blogu“
KDE 0 = 1
VYBERTE „uživatele“."id", "uživatel"."jméno"
FROM „uživatel“ „uživatel“
KDE 0 = 1
Závěr
Pomocí výše uvedené aplikace jsme vytvořili jednoduchou blogovou aplikaci, která vytvoří uživatele a přiřadí blogy uživatelskému jménu. Poté jsme přidali data do databáze, na kterou můžeme dotazovat pomocí dotazů SQL. Ačkoli je aplikace jednoduchá, ukazuje, jak můžeme k vytvoření aplikace v Pythonu použít CockroachDB a PonyORM.