setrar / lab-programmation-mysqlsh-en-python

Programmation MySQL X DevAPI en Python
https://lab.github.com/CollegeBoreal/lab-programmation-mysql-x-devapi-en-python
0 stars 0 forks source link

Installer son projet #1

Open github-learning-lab[bot] opened 4 years ago

github-learning-lab[bot] commented 4 years ago

Bienvenue dans ce laboratoire qui te guidera à écrire un programme dans le language Python. Le programme se concentrera sur l'écriture d'un programme Python accédant une base de donnée MySQL et cela par son protocole X DevAPI permettant l'accès au Document Store de la base de données. Avant de commencer, nous allons nous assurer que l'environnement de développement est prêt.

Courage, ce n'est qu'en dix étapes

:a: Installer Python

:zero: Présence de Python

Ouvrir un terminal et vérifier la version de Python avec la commande suivante

% python --version

Si Python est installé, le résultat de la commande donnera une version. Cette version doit être superieure à 3.x.x

:one: installer Python avec un Package manager

Si Python n'est pas installé, utiliser un gestionnaire de librairies.

:computer: Windows avec choco

PS > choco install anaconda3

:apple: MacOS avec HomeBrew

% brew cask install anaconda 
% echo 'export PATH="/usr/local/anaconda3/bin:$PATH"' >> ~/.zshrc 

:warning: Ce laboratoire n'utilise pas Python 2

:b: Installer Git

:two: Présence de Git

Ouvrir un terminal et vérifier la version de Git avec la commande suivante

% git --version

Si le résultat donne un numéro de version. C'est parfait sinon

:three: installer Git avec un Package manager

Si Git n'est pas installé, utiliser un gestionnaire de librairies.

:computer: Windows avec choco

PS > choco install git.install

:apple: MacOS avec HomeBrew

% brew install git

:ab: Installer Docker Desktop

Docker Desktop permet l'installation de la base de données MySQL 8.0 avec beaucoup de facilité.

:four: Présence de Docker

Ouvrir un terminal et vérifier la version de Git avec la commande suivante

% docker --version

Si le résultat donne un numéro de version. C'est parfait sinon

:five: installer Docker Desktop avec un Package manager

:computer: Windows avec choco

PS > choco install docker-desktop -y

:apple: MacOS avec HomeBrew

% brew cask install docker

:o: Installer MySQL Server

On est plus très loin, il nouis reste à installer la base de donnée.

:six: Créer le conteneur some-mysqlds

:pushpin: sous Powershell

PS> docker container run `
         --name some-mysqlds `
         --env MYSQL_ROOT_PASSWORD=password `
         --publish 3306:3306 `
         --publish 33060:33060 `
         --detach `
         mysql/mysql-server:latest

:pushpin: sous Bash

$ docker container run \
         --name some-mysqlds \
         --env MYSQL_ROOT_PASSWORD=password \
         --publish 3306:3306 \
         --publish 33060:33060 \
         --detach \
         mysql/mysql-server:latest

:seven: Créer la base de données world_x

:pushpin: sous PowerShell

PS > docker container exec --interactive some-mysqlds mysql `
                        --user root --password=password `
                        --execute "CREATE DATABASE world_x;"

:pushpin: sous Bash

$ docker container exec --interactive some-mysqlds mysql \
                        --user root --password=password \
                        --execute "CREATE DATABASE world_x;"

:bulb: Jusqu'ici tu auras pu constater que PowerShell et bash utilise deux séparateurs différents pour continuer une instruction sur la ligne suivant pour plus de clareté. PowerShell utilise le backtick `` et bash utilise lebackslash\ . Pour simplifier l'écriture on utilisera PowerShell en convention dans ce laboratoire avec le promptPS >`

:eight: Créer l'utilisateur root sous le sous-réseau déterminé par le pont Bridge du conteneur Docker

Nous allons tricher un peu pour faciliter la connection en se donnant l'adresse IP de la passerelle du Pont.

Créons notre utilisateur spécial 'root'@'172.17.0.1'

PS > docker container exec --interactive some-mysqlds `
                mysql --user root --password=password `
                --execute "CREATE USER 'root'@'172.17.0.1' IDENTIFIED BY 'password';"

Et donnons lui tous les droits d'accès à n'importe quelle base de données

PS > docker container exec --interactive some-mysqlds `
                mysql --user root --password=password `
                --execute "GRANT ALL ON *.* TO 'root'@'172.17.0.1';"

:eight_pointed_black_star: X DevAPI en Python

Finalement installons la librairie nous permettant d'accéder à la base de données sous Python. Utilisons l'utilitaire Python permettant l'installation de librairie Package Manager pip

:nine: Installer MySQL Connector Python avec pip

PS > pip install mysql-connector-python

:round_pushpin: Vérifier l'installaiton du connecteur MySQL en imprimant sa version qui doit être de 8.x.x

PS > pip show mysql-connector-python 

:100: Cloner le référentiel

Maintenant que nous avons tout, nous pouvons cloner le référentiel contenant le bloc d'assemblage du code que tu vas écrire. Dans un terminal tapes git clone https://github.com/setrar/lab-programmation-mysqlsh-en-python, la version SSH est également recommandée

Dans le référentiel, il y a deux fichiers:

Maintenant que tout est en place, nous pouvons commencer.

Laisses un commentaire avec ton :id: github pour continuer.

setrar commented 4 years ago

setrar

github-learning-lab[bot] commented 4 years ago

Chèr.e setrar, il est temps de faire de la programmation!

# -*- coding: utf-8 -*-
"""

@author: CollegeBoreal
"""

Modifier le programme Python avec l'éditeur de ton choix et changer l'auteur CollegeBoreal avec ton :id: Github

Voyons voir le programme Python, on peut y voir une fonction main qui contiendra toutes les instructions pour écrire le programme et une fonction charge servant à importer les données du fichier b000000000.json: Le format de fichier json (JavaScript Object Notation) permet le partage de données de façon légère (lightweight data-interchange format). C'est, pour les humains, un format plus facile à lire et écrire.

Tu remarqueras au passage que la fonction charge a besoin d'un code externe que l'on va récupérer grâce à l'import d'une librairie import json

import json

def charge(fichier):
   with open(fichier) as f:
      return json.load(f)

def main():
  #print(charge('b000000000.json'))

En dessous de la fonction, on trouvera un if appellant cette fonction:

if __name__== "__main__":
    main()

En faisant cela, la fonction main s'éxécutera dès que le programme Python est lancé.

Dans la fonction main, enlève le commentaire se trouvant sur la ligne:#print(charge('b000000000.json')). Cela permettra d'imprimer le fichier à étudier. Il y a un # devant la ligne, qui veut dire que c'est un commentaire. Enlève le commentaire par le retrait du # permettant à Python de lire la ligne et sauveguarde le fichier.

Pour éxécuter le programme Python taper python b000000000.py dans le terminal. Le programme Python doit se trouver dans le même répertoire ou l'on se trouve.

PS > python b000000000.py
% python b000000000.py

Après l'éxécution, sur ton terminal s'affichera les données du fichier b000000000.json. Nous ferons mieux dans quelques instants mais pour l'instant, il faut soumettre le code vers GitHub.

Pour chaque changement de fichiers dans ton référentiel, il faut ajouter et signer le fichier qui te permet de formuler un message détailant ce que tu as changé. Ensuite tu peux soumettre une version mise à jour, en même temps que tes commentaires, vers GitHub.

:round_pushpin: Faisons ces trois étapes:

  1. Ajouter dans Git: git add b000000000.py
  2. Signer dans Git: git commit -m "Enlever le commentaire pour afficher le contenu du fichier"
  3. Soumettre à Git: git push