Comment créer une application Python avec Cockroachdb et PonyOrm

Comment créer une application Python avec Cockroachdb et PonyOrm

Dans ce guide, nous vous présenterons Cockroachdb et PonyOrt en utilisant Python. Nous allons commencer par discuter de ce que sont ces technologies, puis discuter de leur fonctionnement.

Avant de commencer à construire une application Python avec Cockroachdb et PonyOrm, comprenons quelles sont ces technologies:

Qu'est-ce que Cockroachdb

CockroachDB est une base de données SQL distribuée très évolutive, à source ouverte et distribuée qui utilise des magasins de valeurs clés transactionnels et cohérents.

Cockroachdb est très efficace comme méthode pour assurer la persistance et la récupération des données en cas d'échec. En cas d'échecs matériels et logiciels, il peut préserver les données en utilisant des réplications fortes de ses données et des réparations automatiques. À l'aide de l'API SQL, CockroachDB vous permet de remettre en question, de structurer et de manipuler des données à l'aide de requêtes SQL.

En utilisant l'API SQL, CockroachDB offre aux développeurs une transition facile car ils obtiennent les mêmes concepts familiers. Parce qu'il a déjà des pilotes SQL existants pour la plupart des langages de programmation, l'utiliser devient plus confortable.

Nous vous recommandons de consulter la documentation CockroachDB pour une meilleure compréhension.

https: // linkfy.à / cockroachdocs

Qu'est-ce que PonyOrm

Ponyorm est un mappeur d'objet Python avancé. Bien qu'il existe d'autres ORM Python tels que Django et Sqlalchemy, Ponyorm est avantageux car il a des fonctionnalités comme la prise en charge des clés composites, l'optimisation automatique des requêtes et la syntaxe de requête intuitive et simple.

Un ORM est simplement un outil qui vous permet de travailler avec une base de données SQL en utilisant votre langage de programmation préféré. Il donne aux développeurs la possibilité de travailler avec les données dans une base de données sous forme d'objets; Par conséquent, vous pouvez utiliser la POO pour votre langue pour fonctionner avec les données.

À l'aide de la bibliothèque ponyorm, nous pouvons utiliser le langage Python pour travailler avec des données dans CockroachDB sous la forme d'objets de la base de données relationnelle.

Vous pouvez utiliser la documentation pour poney pour référence. Voici le lien:

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

Comment installer cockroachdb sur Linux

Pour installer CockroachDB sur Linux Systems, suivez les étapes de ce guide et, selon la configuration de votre système, vous devrez avoir un accès root ou être un utilisateur sudo.

La première étape consiste à vous assurer que votre système est à jour, puis à installer les dépendances requises. Voici la commande à ce sujet:

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

L'étape suivante consiste à télécharger le binaire Cockroachdb à l'aide de WGET, comme indiqué dans la commande ci-dessous:

wget -qo- https: // binaires.cafrachdb.com / cafard-v20.2.3.Linux-AMD64.tgz

Une fois le binaire téléchargé, extraire le fichier.

TAR -XVF COCKRACH-V20.2.3.Linux-AMD64.tgz

Pour lancer les commandes Cockroachdb à partir de n'importe quel shell, ajoutez le binaire à votre chemin:

CP -i Cockroach-V20.2.3. Linux-AMD64 / COCKRACH / USR / BIN /

Copiez les bibliothèques requises:

mkdir -p / usr / lib / cafard
CP -i Cockroach-V20.2.3.Linux-AMD64 / Lib / Libgeos.SO / USR / LIB / COCKRACH /
CP -i Cockroach-V20.2.3.linux-amd64 / lib / libgeos_c.SO / USR / LIB / COCKRACH /

Une fois terminé, confirmez que le cafard est installé:

Quel cafard
/ usr / bin / cafard

Démarrez un cluster temporaire en mémoire à l'aide de la commande:

démo de cafards

À l'intérieur du cluster, vous pouvez exécuter un shell SQL interactif pour entrer des requêtes SQL valides:

Montrer des tables;

Comment installer poney orage

Pour installer poneyorm, vous devriez avoir une version installée et exécutée de Python. Vous pouvez utiliser à la fois Python 2 (mort) ou Python 3.

À l'aide de PIP, installez Pony:

PIP3 Installer Pony

Pour tester si vous avez installé Pony, ouvrez l'interprète Python et entrez le code.

>>> de poney. ORM IMPORT *

Puisque nous utiliserons PonyOrm avec CockroachDB, nous devons installer le pilote requis. Pour ce cas, nous devons installer PSYCOPG2. Utilisez la commande PIP pour installer le pilote nécessaire.

PIP installe psycopg2-binaire

Vérifiez si vous avez installé PSYCOPG à l'aide de la session Python interactive et entrez la commande:

importer psycopg

Une fois que vous avez tout installé, vous pouvez passer à autre chose et commencer à travailler avec CochroachDB et Ponyorm:

Comment construire une application Python avec Cockroachdb et PonyOrm

Pour créer une application Python, commencez par lancer un shell SQL interactif à l'aide de la commande.

cafard SQL

L'étape suivante consiste à créer une base de données et un utilisateur avec qui interagir, ce que vous pouvez faire en utilisant la commande:

Créer un utilisateur s'il n'existe pas d'administration;
Créer un blog de base de données;

Ajoutez les privilèges nécessaires à l'utilisateur administrateur à l'aide de la commande:

Accordez tout sur le blog de la base de données à l'administrateur;
\ q;

Maintenant pour la section de l'application:

Le code ci-dessous utilise Ponyorm pour interagir avec la base de données du blog et mapper les objets et méthodes Python à la base de données SQL.

Le code ci-dessous effectue les opérations suivantes:

de poney.ORM IMPORT *
Importer DateTime
base de données = base de données ()
db_params = dict (provider = 'cockroach', user = 'admin',
host = 'localhost', port = 26257, database = 'blog')
Utilisateur de classe (base de données.Entité):
first_name = requis (Unicode)
blogs = set ("blog")
Blog de classe (base de données.Entité):
nom d'utilisateur = requis (utilisateur)
Titre = requis (Unicode)
publih_date = requis (datetime.date)
catégorie = requis (Unicode)
set_sql_debug (true)
base de données.lier (** db_params)
base de données.generate_mapping (create_tables = true)
@DB_SESSION
def create_blog ():
user = user (first_name = u "admin")
blog = blog (nom d'utilisateur = utilisateur,
Titre = u "Hello World",
publih_date = datetime.Date (2021, 1, 1),
catégorie = u "brouillon")
blogs = [

"utilisateur": utilisateur,
"Titre": "Hello World 1",
"Publish_Date": DateTime.Date (2021, 1, 2),
"Catégorie": "Draft"
,

"utilisateur": utilisateur,
"Titre": "Hello World 2",
"Publish_Date": DateTime.Date (2021, 1, 3),
"Catégorie": "Draft"
,

"utilisateur": utilisateur,
"Titre": "Hello World 3",
"Publish_Date": DateTime.Date (2021,1,4),
"Catégorie": "Draft"

]]
Pour le blog dans les blogs:
b_ = blog (** blog)
Si __name__ == "__main__":
create_blog ()
b_ = utilisateur ("admin")

Une fois que vous avez exécuté l'application, vous devriez voir une sortie similaire à celle ci-dessous:

Obtenez une nouvelle connexion
Connexion de libération
Obtenez la connexion à partir du pool local
Passer en mode AutoCommit
Créer la table "utilisateur" (
Clé primaire en série "ID",
Le texte "First_name" n'est pas nul
)
Créer un «blog» de table (
Clé primaire série «ID»,
«Nom d'utilisateur» int8 pas null,
Texte «titre» pas nul,
«Publish_Date» Not Null,
Le texte «catégorie» n'est pas nul
)
Créer un index "idx_blog__username" sur "blog" ("nom d'utilisateur")
Alter Table "Blog" Ajouter une contrainte "FK_BLOG__USERNAME" Foreign Key ("Username") fait référence à "User" ("ID") sur Delete Cascade
Sélectionnez "Blog"."id", "blog"."nom d'utilisateur", "blog"."titre", "blog"."Publish_Date", "Blog"."catégorie"
Du "blog" "blog"
Où 0 = 1
Sélectionnez "User"."id", "utilisateur"."prénom"
De "utilisateur" "utilisateur"
Où 0 = 1

Conclusion

En utilisant l'application ci-dessus, nous avons créé une application de blog simple qui crée un utilisateur et attribue des blogs au nom d'utilisateur. Nous avons ensuite ajouté les données dans la base de données, que nous pouvons interroger à l'aide de requêtes SQL. Bien que l'application soit simple, elle illustre comment nous pouvons utiliser Cockroachdb et PonyOrm pour créer une application Python.