Python

Een Python-app bouwen met CockroachDB en PonyORMOR

Een Python-app bouwen met CockroachDB en PonyORMOR

In deze gids zullen we u kennis laten maken met CockroachDB en PonyORM met behulp van Python. We zullen beginnen met te bespreken wat deze technologieën zijn en vervolgens bespreken hoe ze werken.

Voordat we beginnen met het bouwen van een Python-toepassing met CockroachDB en PonyORM, moeten we begrijpen wat deze technologieën zijn:

Wat is CockroachDB

CockroachDB is een zeer schaalbare, open-source, gedistribueerde SQL-database die gebruikmaakt van transactionele en consistente sleutelwaarde-archieven.

CockroachDB is zeer efficiënt als een methode om gegevenspersistentie en herstel te garanderen in geval van storing. In het geval van hardware- en softwarestoringen kan het gegevens behouden door gebruik te maken van sterk consistente replicaties van zijn gegevens en automatische reparaties. Met behulp van SQL API kunt u met CockroachDB gegevens opvragen, structureren en manipuleren met behulp van SQL-query's.

Met behulp van de SQL API biedt CockroachDB ontwikkelaars een gemakkelijke overgang omdat ze dezelfde bekende concepten krijgen. Omdat het al bestaande SQL-stuurprogramma's heeft voor de meeste programmeertalen, wordt het gebruik ervan comfortabeler.

We raden u aan de CockroachDB-documentatie te bekijken voor een beter begrip.

https://linkfy.naar/kakkerlakDocs

Wat is PonyORM

PonyORM is een geavanceerde Python Object-Relational Mapper. Hoewel er andere Python ORM zijn, zoals Django en SQLAlchemy, is PonyORM voordelig omdat het functies heeft zoals ondersteuning voor samengestelde sleutels, automatische query-optimalisatie en intuïtieve en eenvoudige querysyntaxis.

Een ORM is gewoon een hulpmiddel waarmee u met een SQL-database kunt werken in de programmeertaal van uw voorkeur. Het geeft ontwikkelaars de mogelijkheid om met de gegevens in een database te werken in de vorm van objecten; daarom kunt u OOP gebruiken voor uw taal om met de gegevens te werken.

Met behulp van de PonyORM-bibliotheek kunnen we Python-taal gebruiken om met gegevens in CockroachDB te werken in de vorm van objecten van de relationele database.

U kunt de PonyORM-documentatie gebruiken ter referentie. Hier is de link:

https://docs.ponyvorm.org/toc.html

Hoe CockroachDB op Linux te installeren

Om CockroachDB op Linux-systemen te installeren, volgt u de stappen in deze handleiding en, afhankelijk van uw systeemconfiguratie, moet u root-toegang hebben of een sudo-gebruiker zijn.

De eerste stap is ervoor te zorgen dat uw systeem up-to-date is en vervolgens de vereiste afhankelijkheden te installeren install. Hier is het commando daarvoor:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install glibc libncurses tzdata -y

De volgende stap is om het binaire bestand CockroachDB te downloaden met behulp van wget, zoals weergegeven in de onderstaande opdracht:

wget -qO- https://binaries.kakkerlak.com/kakkerlak-v20.2.3.linux-amd64.tgz

Zodra je het binaire bestand hebt gedownload, pak je het bestand uit.

teer -xvf kakkerlak-v20.2.3.linux-amd64.tgz

Om CockroachDB-opdrachten vanuit elke shell te starten, voegt u het binaire bestand toe aan uw pad:

cp -i kakkerlak-v20.2.3. linux-amd64/kakkerlak /usr/bin/

Kopieer de vereiste bibliotheken:

mkdir -p /usr/lib/kakkerlak
cp -i kakkerlak-v20.2.3.linux-amd64/lib/libgeos.dus /usr/lib/kakkerlak/
cp -i kakkerlak-v20.2.3.linux-amd64/lib/libgeos_c.dus /usr/lib/kakkerlak/

Als je klaar bent, bevestig je dat je Cockroach hebt geïnstalleerd:

welke kakkerlak?
/usr/bin/kakkerlak

Start een tijdelijk, in-memory cluster met de opdracht:

kakkerlak demo

Binnen het cluster kunt u een interactieve SQL-shell uitvoeren om geldige SQL-query's in te voeren:

TOON TABELLEN;

Hoe PonyORM te installeren

Om PonyORM te installeren, moet u een geïnstalleerde en actieve versie van Python hebben. Je kunt zowel Python 2 (dood) als Python 3 . gebruiken.

Installeer Pony met pip:

pip3 pony installeren

Om te testen of je Pony hebt geïnstalleerd, open je de Python-interpreter en voer je de code in.

>>> van pony. orm importeren *

Aangezien we PonyORM met CockroachDB zullen gebruiken, moeten we de vereiste driver installeren install. Voor dit geval moeten we psycopg2 . installeren. Gebruik de opdracht pip om het benodigde stuurprogramma te installeren.

pip installeer psycopg2-binary

Controleer of je Psycopg hebt geïnstalleerd met behulp van de interactieve python-sessie en voer de opdracht in:

psycopg importeren

Zodra je alles hebt geïnstalleerd, kun je verder gaan en aan de slag gaan met CochroachDB en PonyORM:

Hoe een Python-toepassing te bouwen met CockroachDB en PonyORM

Om een ​​python-toepassing te bouwen, start u met het starten van een interactieve SQL-shell met het commando.

kakkerlak SQL

De volgende stap is het maken van een database en gebruiker om mee te communiceren, wat u kunt doen met behulp van de opdracht:

MAAK GEBRUIKER ALS NIET BESTAAT admin;
MAAK DATABASE-blog;

Voeg de nodige privileges toe aan de admin-gebruiker met behulp van de opdracht:

VERLENEN ALLES OP DATABASE blog AAN admin;
\q;

Nu voor het app-gedeelte:

De onderstaande code gebruikt PonyORM om te communiceren met de blogdatabase en de Python-objecten en -methoden toe te wijzen aan de SQL-database.

De onderstaande code voert de volgende bewerkingen uit:

van pony.orm importeren *
datum/tijd importeren
databank = databank ()
db_params = dict(provider='kakkerlak', gebruiker='admin',
host='localhost', poort=26257, database='blog')
klasse Gebruiker (database).Entiteit):
first_name = Vereist (unicode)
blogs = Set("Blog")
klasse Blog (database).Entiteit):
gebruikersnaam = Vereist (gebruiker)
titel = Vereist (unicode)
publish_date = Vereist(datetime.datum)
categorie = Vereist (unicode)
set_sql_debug (waar)
database.bind(**db_params)
database.Genereer_mapping(create_tables=True)
@db_session
def create_blog():
gebruiker = Gebruiker(first_name=u"Admin")
blog = Blog (gebruikersnaam=gebruiker,
title=u"Hallo wereld",
publish_date=datetime.datum (2021, 1, 1),
categorie=u"Concept")
blogs = [

"gebruiker": gebruiker,
"title": "Hallo wereld 1",
"publish_date": datumtijd.datum (2021, 1, 2),
"category": "Concept"
,

"gebruiker": gebruiker,
"title": "Hallo wereld 2",
"publish_date": datumtijd.datum (2021, 1, 3),
"category": "Concept"
,

"gebruiker": gebruiker,
"title": "Hallo wereld 3",
"publish_date": datumtijd.datum (2021,1,4),
"category": "Concept"

]
voor blog in blogs:
b_ = Blog(**blog)
if __name__ == "__main__":
create_blog()
b_ = Gebruiker("Beheerder")

Nadat u de app hebt uitgevoerd, zou u een uitvoer moeten zien die lijkt op de onderstaande:

KRIJG EEN NIEUWE VERBINDING
VERBINDING LOSLATEN
KRIJG VERBINDING VANAF HET LOKALE ZWEMBAD
SCHAKELEN NAAR AUTOCOMMIT-MODUS
MAAK TABEL "gebruiker" (
"id" SERILE PRIMAIRE SLEUTEL,
"first_name" TEKST NIET NULL
)
MAAK TABEL “blog” (
“id” SERILE PRIMAIRE SLEUTEL,
“gebruikersnaam” INT8 NIET NULL,
“titel” TEKST NIET NULL,
“publish_date” DATUM NIET NULL,
“categorie” TEKST NIET NULL
)
MAAK INDEX "idx_blog__gebruikersnaam" OP "blog" ("gebruikersnaam")
WIJZIG TABEL "blog" ADD CONSTRAINT "fk_blog__username" BUITENLANDSE SLEUTEL ("gebruikersnaam") REFERENTIES "gebruiker" ("id") OP VERWIJDEREN CASCADE
SELECTEER "blog"."id", "blog"."gebruikersnaam", "blog"."titel", "blog"."publish_date", "blog"."categorie"
VAN "blog" "blog"
WAAR 0 = 1
Selecteer gebruiker"."id", "gebruiker"."Voornaam"
VAN "gebruiker" "gebruiker"
WAAR 0 = 1

Conclusie

Met behulp van de bovenstaande app hebben we een eenvoudige blogtoepassing gemaakt die een gebruiker aanmaakt en blogs toewijst aan de gebruikersnaam. Vervolgens hebben we de gegevens toegevoegd aan de database, die we kunnen doorzoeken met behulp van SQL-query's. Hoewel de app eenvoudig is, illustreert hij hoe we CockroachDB en PonyORM kunnen gebruiken om een ​​Python-app te maken.

Beste gameconsole-emulators voor Linux
Dit artikel bevat een lijst van populaire emulatiesoftware voor gameconsoles die beschikbaar is voor Linux. Emulatie is een softwarecompatibiliteitsla...
Beste Linux-distributies voor gaming in 2021
Het Linux-besturingssysteem heeft een lange weg afgelegd van zijn oorspronkelijke, eenvoudige, servergebaseerde uiterlijk. Dit besturingssysteem is de...
Hoe u uw gamesessie op Linux kunt vastleggen en streamen
In het verleden werd het spelen van games alleen als een hobby beschouwd, maar met de tijd zag de game-industrie een enorme groei in termen van techno...