C’est un plugin navigateur qui vous permet d’exécuter du code Javascript sur la page où vous vous trouvez. Vous connaissez les extensions de navigateur? Greasemonkey vous permet facilement de retrouver les mêmes capacités sans avoir à coder toute l’extension.
Installez Greasemonkey version 4 (sur Chrome c’est TamperMonkey).
Pour aller au plus simple, cliquez sur l’icône du singe, vérifiez qu’il est bien activé puis cliquez sur Nouveau Script
// ==UserScript==
// @name Anonyme Script 813510
// @version 1
// @grant none
// ==/UserScript==
Sion on veut de l'ajax (cross domain en plus !)
//@grant GM.xmlHttpRequest
Vous pouvez personnaliser les annotations, @name pour le nom du script, @version qui n’aura pas d’influence sur votre scripts, et surtout @grant est très important, si vous voulez par exemple faire une requêtes Ajax, par défaut vous ne pouvez pas. Je vous joins la page de documentation du plugin:
Récemment j’ai eu droit en voulant activer mon thème Astra, je me suis heurté à l’erreur suivante :
cURL error 60: SSL certificate problem: unable to get local issuer certificate
Ce n’est pas un problème du thème Astra
Ce n’est pas un problème de votre hébergeur
J’ai fait 2 aller retours vers le hébergeur 02Switch, qui est très bien, réactif, mais n’a pu me solutionner mon problème, se contentant de dire que chez eux tout va bien. Bien sûr je ne savais pas quel était le vrai problème, je sentais que c’était un problème du serveur du site, et pas de celui d’Astra, comme me le suggérait l’hébergeur.
La solution est ailleurs
Ce n’est seulement qu’après avoir vu la petite vidéo d’Astra montrant que (tout plugins désactivés, le problème persistait, en effet en allant sur Outil > Santé du site, il y avait une alerte d’erreur critique concernant REST API, en gros les appels vers d’autres serveurs échouaient à cause du certificat.
En googlant un peu plus sur Internet, j’ai trouvé la solution sur cette page :
Le problème était que le certificat de WordPress, le fichier ca-bundle.crt localisé dans wp-includes/certificates, datait de 2016…
La solution consistait à télécharger un certificat plus récent sur ce lien le fichier ca-cert.pem. Le soucis c’est que ce fichier ne nommait pas pareil, pas de panique il suffit juste de copier le contenu texte de ce fichier et de remplacer l’ancien contenu intégralement du fichier ca-bundle.crt et le tour est joué.
L’order book est le livre des ordres de bourse à cours limité, ce sont des ordres en attente d’exécution, à la différence des ordres market, que vous ne verrez pas car ils sont passés immédiatement.
Les données vous permettent de tracer la profondeur de marché, de voir la densité des ordres en fonction du cours d’exécution
Quotation en temps réel à différents timeframes
Cette fonctionnalité est primordiale pour tracer les cours des crypto, on a besoin en version OHLC, pour tracer les bougies et faire de l’analyse technique dessus.
VSCode est vraiment l’éditeur de code couteau suisse, son avantage est que s’il y a un langage même confidentiel, vous trouverez un plugin. Même s’il n’est pas le meilleur dans chaque catégorie, par exemple je trouve PHPStorm mieux pour le PHP, il est un très bon outil gratuit de surcroît.
Pour NodeJs, c’est un peu plus simple que pour Xdebug en PHP, il y ap lusieur façons de déclencher le débugger de NodeJS, on va voir l’auto déclenchement du débugger dès qu’un process node est en cours d’exécution.
Je suppose que vous ayez un fichier index.js, à exécuter via la commande shell, pour le lancer vous faites node index.js. Si vous ne l’avez pas fait vous pouvez démarrer un projet NodeJS.
Et là vous devrez avoir la barre de status orange, indiquant que le débug est actif.
Configuration de VSCode pour le debug automatique (Auto attach)
Pour activer l’auto attach, faites la combinaison de touche : SHIFT + CTRL + P, une boite de recherche va apparaitre, tapez « Toggle Auto Attach » pour trouver l’option et cliquez dessus.
Maintenant chaque fois que vous démarrez un process NodeJS, VSCode se met en mode debug.
packge.json est le fichier important sans lui vous ne pouvez pas publier de package.
Le fichier index.js est le point d’entrée de votre package.
Le nom du package doit être unique dans tout le repository NPM, cela a donné à l’affaire du npmgate
Dans la barre de recherche de NPM vous pouvez chercher par nom de package.
Créez le fichier index.js
On va faire simple un seul fichier:
let uniqueArr = [];
function removeArrayDuplicates(arr) {
// Accepts an array from which the duplicates
// will be removed
if (!Array.isArray(arr)) {
arr = [];
}
let theSet = new Set(arr);
arr.filter((num) => {
if (!uniqueArr.includes(num)) {
uniqueArr.push(num)
}
})
return uniqueArr;
}
/* code de test */
let myNums = [1, 2, 3, 1, 4, 1, 2, 5, 3, 4];
let uniqueNums = removeArrayDuplicates(myNums)
console.log(uniqueNums);
Pour cela inutile d’aller sur le site web de NPM ! vous pouvez tout faire en ligne dans votre terminal. Enlevez le code inutile d’application qui vient après la fonction.
npm login
// entrez vos identifiants
npm publish
j’ai eu un problème car le nom du paquet existe déjà, donc ce qu’on peut faire c’est de changer vers un nom qui n’existe pas encore
Si vous installez pour la première fois NodeJS voici la comamnde avec Homebrew (je vous recommande de la farie avec Homebrew, pour les upgrade plus tard, c’est plus facile)
brew install node
npm install create-react-app
npx create-react-app monApp
Mise à jour de NodeJS sur MacOS
Si vous avez déjà NodeJs d’installé, vérifiez que vous avez la dernière version, si vous ‘avez pas la dernière version, faites un upgrade
Vérifiez votre version de nodeJS sur votre poste, et regardez quelle est la dernière version de NodeJS, pour ma part j’éatis à 12, la dernière version étant 19 !
> node -v
> brew upgrade node
Upgrader NodeJS non installé avec Homebrew
L’ennui est que je n’avais pas installé nodeJs avec Br–Hombrew, donc il fallait désinstaller à la main ! heureusement j’ai trouvé un script shell de désinstallation
Puis en en voulant faire un symlink
brew link node
J’ai eu une erreur de ce type :
Error: Could not symlink include/node/common.gypi
Il faut changer le mode, c’est un problème de droit
sudo chown -R $(whoami) $(brew --prefix)/*
brew link --overwrite node
Je vous conseille d’utiliser Homebrew pour avoir des install plus clean, et pas seulement pour nodeJS.
Installer create-react-app avec NPM
npm install create-react-app
//création du projet
npm create-react-app myApp
cd to folder
//lancement du projet
npm start
Vous pouvez utiliser NPX à la place de NPM, la différence c’est que NPX ne télécharge pas le package, à la différence de NPM.
MacOS est un dérivé de FreeBSD, donc contient déjà un serveur apache, mais c’est tout.
MAMP est une solution de développement intégré comme WAMP, Laragon ou encore XAMP.
Les version nouvelles de PHP sortant, il faut se mettre à jour. Nous allons voir comment mettre à jour la version de PHP avec Homebrew.
Mettre à jour HomeBrew
Ici il s’agit d’avoir la dernière version de Homebrew Core. Parfois vous avez le message suivant
Warning: homebrew/core is shallow clone. To get complete history run:
git -C "$(brew --repo homebrew/core)" fetch --unshallow
Cela veut dire qu’il faut avoir tout le code source de Homebrew, il faut taper la commande suivante (ça prend pas mal de temps), mais si vous ne le faites pas et que vous voulez installer une nouvelle version de PHP (ou de tout autre logiciel, vous n’arriverez pas). Exécutez la commande Git, shallow veut dire creux, en fait pour sauver de l’espace, tout n’était pas téléchargé.
it -C "/chemin/vers/homebrew/core" fetch --unshallow
Si vous n’avez pas ce message ce n’est pas grave, vous êtes en bonne voie. Patientez un bon moment pendant que cette commande s’exécute.
Installer la nouvelle version de PHP
brew install php@8.1
Cela va télécharger PHP dans le répertoire /usr/local/Cellar/php@8.1/lib, et dans /usr/local/opt/php/php8.1 qui est en fait un raccourci vers le premier répertoire, une fois dans le répertoire PHP localisé, vous avez deux sous répertoires, /httpd et /php.
Allez dans Cellar/php/ copier le répertoire php8.1 nouvellement créé, vers MAMP dans Application/MAMP/bin/PHP
Si le dossier PHP que vous avez collé ne s’appelle pas php8.1, renommez le comme ça car cela va permettre à MAMP de la reconnaitre au redémarrage. Redémarrez MAMP et sélectionnez la nouvelle version de PHP, par défaut seules les deux dernières versions de PHP sont montrées dans la liste déroulante.
Copier le fichier libphp.so
Démarrez le serveur Apache, vous allez voir une erreur, car il manque encore une manipulation à faire, il faut le fichier libphp.so.
Ce fichier est à récupérer dans le répertoire usr/local/lib/http/modules et à mettre dans /MAMP/bin/php/php8.1/modules
Pour ceux qui ne veulent pas dépenser 250 euros pour avoir une license de PHPStorm, il reste Visual Studio Code, qui est gratuite. Cet IDE s’est imposé comme un IDE à tout faire, ce qui en fait un outil très intéressant pour toucher à tout type de langages (même Solidity). Nous allons voir comment configurer XDebug pour fonctionner avec VSCode.
Qu’est que Xdebug?
Xdebug est une extension bas niveau qui permet de débugger pas à pas votre code PHP.
Pour savoir débugger est important?
Quand vous avez un grand projet, inutile de faire des var_dump, echo ou print, il faut absolument passer pas un debugger, vous deviendrez un meilleur codeur. Typiquement un projet Symfony avec des milliers de fichier potentiellement, on ne s’en sort pas avec des echo !
Comment le debug est déclenché?
Le serveur web reçoit l’instruction de débugger via un cookie spécial envoyé par le navigateur, via une extension Chrome (donc pas dispo avec Firefox par exemple quoique l’on peut trouver si l’on veut un équivalent). Le setup risque d’être un peu long mais cela en vaut vraiment le coup !
Quelle version de Xdebug faut il installer?
En fait il faut aller voir le tableau de correspondance pour trouver la paire de logiciel PHP/Xdebug qui fonctionne. Le site officiel possède un tableau de compatibilité version de PHP et version de XDebug, soyez à jour ! J’ai fait plusieurs tutos sur Xdebug sur ce site, et je fais un nouveau tuto pour remettre à jour les versions qui marchent, et aussi les façons de configurer ont changé, donc il était temps de remettre à jours les connaissances avec les dernières version des tous les logiciels PHP 8.x et Xdebug 3.x
Allez sur le site officiel pour télécharger le zip, attention, il y a différentes versions pour une même version de Xdebug. Pour windows il faut choisir la thread safe, 64 bits.
Où configurer le Xdebug?
Il faut aller dans le fichier php.ini, attention, il y a deux version de php.ini, une pour la version CLI (en ligne de commande) et une pour la version web, à deux endroits différent, utiliser phpinfo(); CTRL+F de php.ini et vous aurez le chemin du fichier. Collez ce texte en fin de fichier.
Vous pourrez vérifier avec phpinfo() si xdebug est installé, si c’est le cas une nouvelle section affichera beaucoup d’informations.
Installer l’extension Chrome Xdebug
Comme nous avons vu plus tôt, c’est le navigateur qui envoit un en-tête spécial pour déclencher XDebug. Regardez la section COOKIE lorsque le script suivant est exécuté:
<?php
phpinfo();
Et coté navigateur en regardant les en-têtes envoyés :
Regardez la section COOKIE, on a bien la même chose envoyée par le navigateur. Ceci est possible grâce à l’extension Xdebug pour Chrome (faites une recherche sur Google) qui envoit automatiquement ce cookie. Installons le. Vérifiez ensuite que le petit insecte est au vert (actif), sinon cliquez dessus.
Fichier de configuration dans VScode et plugin Xdebug pour PHP
Attention ce n’est pas fini ! mais bientôt ! Puisque nous débuggons sous VSCode, nous allons ajouter un plugin dédié et un fichier de configuration pour VSCode. Tout d’abord, le plugin, installez le plugin, entre PHP DEBUG dans la barre de recherche des plugins. Installez celui avec la mention « Debug support for PHP with XDebug »
Le plugin sous VSCode à installer s’appelle PHP Debug de XDEBUG.
Le fichier de configuration
Cliquez sur l’icône de débug sous VSCode (coccinelle + triangle), puis Add Configuration > add launch JSON file, un fichier JSON va s’ouvrir, remplacez intégralement son code par le code ci-dessous
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
}
]
}
Testez votre script
Maintenant créez un fichier PHP dans un virtualhost, mettez un point d’arrêt sur une ligne, cliquez sur Listen to Xdebug, et chargez la page dans votre navigateur !
Mode pas à pas
Installe Xdebug sur MacOs
Pour les MacOs, le fichier Xdebug est à installer avec PECL
>pecl install xdebug
Build process completed successfully
Installing '/usr/local/Cellar/php/8.2.1/pecl/20220829/xdebug.so'
install ok: channel://pecl.php.net/xdebug-3.2.0
Extension xdebug enabled in php.ini
Localisez l’endroit où se trouve Xdebug de suite après l’installation, le chemin est normalement affiché, recopiez le pour le mettre dans le fichier php.ini,
Installer Xdebug pour Linux
La procédure est à peu près la même que pour MacOs, utilisez PECL pour installer Xdebug, recopiez le chemin
La plateforme Wistia est un hébergeur de vidéo, souvent utilisé dans les sites en accès restreint (pour la formation par exemple). Parfois on a envie de télécharger les vidéo pour regarder plus tranquillement quan on est en vacances dans un endroit où l’internet n’est pas très développé. Il vous faut télécharger les vidéos.
Nous allons voir comment on peut le faire ne Python. Pour ce faire vous devez avoir installé un environnement python et avoir déjà manipulé ce langage.
sur la vidéo, faites un clic droit, ou deux clic droit pour faire apparaitre la popup qui vous permet de copier le code HTML d’intégration de la vidéo. Collez ce code dans un éditeur de texte, copiez la portion qui est juste après l’url de la page
Assurez vous que le nom du projet (pythonProject) est bien celui où vous avez installé la librairie.
Comment économiser de l’espace mémoire
Le paramère 720p concerne la résolution de la vidéo que vous téléchargez, la définition 1080p est vraiment dix fois plus lourde que la 720p, qui reste pour certains types de vidéo de très bonne qualité.
Optimiser vos téléchargement avec un script batch sous Windows
Par exemple sur Windows vous pouvez créer un fichier .bat et y mettre les multiple commandes de téléchargements de vidéo. Mettez de préférence les commandes avec le chemin absolu, une comande par ligne, ensuite il ne vous reste plus qu’à lancer le fichier .bat pour télécharger tranquillement vos vidéos.
Récemment j’ai encore eu mon SSD pourtant de marque (un Crucial) qui a refusé subitement de démarrer ! j’ai vraiment eu le ras le bol, d’autant plus que c’est arrivé à mes 7 autres SSD par le passé. Je n’arrive pas à comprendre pourquoi ça m’arrive si souvent, d’autant plus que sur Internet, les informations convergent vers une bonne fiabilité des SSD.
Je pense que peut être c’est mon circuit électrique qui est en cause, les pics de courant par exemple. N’ayant pas d’argent à investir dans un onduleur, je pense m’équiper de multiprise (contre les surtensions violentes).
En attendant ce que vous pouvez faire c’est de ne pas mettre en veille votre ordinateur, il semblerait que cela ne soit pas très bon pour les SSD.
Je précise que c’est pour mon PC en tour, pour mon Mac, il est vrai que je n’utilise pas beaucoup je ne rencontre pas ce genre de problème.
N’interrompez pas votre disque dur
La manipulation à faire est la suivante (il faut aller dans la configuration avancé de votre SSD).
Allez dans le panneau de configuration, puis dans Matériel et audio,
Puis aller dans Option d’alimentation
Puis aller dans Modifier les paramètres du mode,(Utilisation normale)
puis dans Modifier les paramètres d’alimentation avancés,
Puis aller dans Arrêter le disque dur après, mettre jamais (le disque dur ne sera jamais mis en pause)
puis dans PCI Express, désactivez l’économie d’énergie.
Précautions supplémentaires pour ne pas perdre vos données et programmes installés
Je double mon SSD pour en faire une sauvegarde avec Macrium un outil de clonage gratuit. Il faut faire ceci régulièrement, idéalement tous les mois, la version gratuite ne propose pas de sauvegarde incrémentale. Ce matin quand mon SSD a eu un problème, je n’avais pas encore fait de sauvegarde pendant 6 mois…j’ai regretté mais j’ai réussi à récupérer mon SSD avec CheckDisk, l’outil de Microsoft, alors que Storage Executive de Micron signalait que mon disque était normal…
Avoir un clone, évite de réinstaller votre système d’exploitation, ce qui prend une journée avec tous les logiciels.
Onedrive pour sauver toutes vos données importantes
Je ne saurais vous encourager à prendre une solution payante de sauvegarde comme Onedrive, qui sauvegarde précieusement vos données personnelles et de travail, pour dormir tranquille. Dropbox fut un temps mon favori, mais est devenu trop cher et se tourne plus vers une clientèle professionnelle.
Les sockets vous permettent d’ouvrir une liaison continue entre le serveur et le client. A la différence d’une requête AJAX, qui est l’équivalent d’un chargement de page HTTP, qui s’arrête une fois les informations téléchargées, le socket ouvre un stream continu. Cela évite les limitations des requêtes AJAX, comme par exemple la limitation du nombre de requêtes par minutes par exemple.
Si vous voulez connaitre un cours de bourse en temps réel, hors de question d’utiliser des requêtes AJAX, car vous allez vous faire blacklister.
Installer la librairie websocket-client
Il vous faut installer la librairie websocket-client (attention il y a une autre librairie qui s’appelle websocket, ce n’est pas celle là)
Imaginons que vous ayez un programme utilisant une librairie externe, par exemple Beautifulsoup, ce dernier étant une librairie externe, donc il faut l’importer avec la commande :
pip install beautifulsoup4
Sous PyCharm, la librairie sera installée dans la section External Librairies, dans la barre latérale Project. Mais le véritable répertoire (sous Windows) sera :
Remplacez mon_user et nom_projet par vos données propres.
Ainsi lorsque vous exécutez un programme en ligne de commande, et qu’il vous dit « Module Not Found …bs4 » c’est que l’exécutable Python n’arrive pas à le trouver. Il faut créer la variable PYTHONPATH.
Pour ce faire (Windows) dans la boite de recherche de Windows (Cortana) tapez PATH, vous accédez aux variables d’environnement. Ajoutez la nouvelle variable PYTHONPATH puis ajoutez le chemin cité plus haut. MAintenant vous pouvez lancer votre programme en ligne de commande.
Lister les valeurs des chemins d’inclusion
import sys
print(sys.path)
Ce programme va vous afficher tous les chemins qui sont tenus compte pour la recherche de module. En fonction de votre environnement virtuel, les résultats peuvent différer, et vous saurez pourquoi vous avez un Module Not Found.
Récemment pour faire des fonction de fenêtrage, j’ai du passer sous Laragon à MySQL 8, version qui supporte cette feature. Pour ceux qui ne le connaissent pas encore, quand vous faites un GROUP BY, vous perdez de l’information en agrégeant une donnée. Pour néanmoins disposer de cette valeur agrégée sur un elisting de résultat non agrégé, c’est là qu’il fuat faire intervenir la fonction de fenêtrage OVER (PARTITION BY).
Passer à MySQL 8 sous Laragon
La plupart des information ont été glanées sur le site de Laragon
Laragon upgrade to MySQL 8 instructions:
https://forum.laragon.org/topic/2017/mysql-8-upgrade-instructions
Après avoir suivi les instruction ci-dessus :
MySQL ne peut démarrer après MAJ à Mysql 8 :
https://forum.laragon.org/topic/1766/laragon-4-0-16-mysql-8-0-18-mysql-cannot-start/3
La page ci-dessus donne les manipulation à faire pour obtenir un nouveau mot de passe :
mot_de_passe_temporaire
"You must reset your password using ALTER USER statement before executing this statement"
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'root'; //syntaxe mysql 8 !!
PHPMYADMIN on ne peut se connecter après mise à jour
https://stackoverflow.com/questions/52364415/php-with-mysql-8-0-error-the-server-requested-authentication-method-unknown-to
Un nouveau répertoire mysql8 vient de se créer dans le sous répertoire de mysql :
C:\laragon\data\mysql-8
N'oubliez pas avant de faire la migration de backuper le dossier mysql.
créer deux accounts, un polkadot stash (le stash est comparable à un cold wallet) et un polkadot controller (comparable à un hot wallet). Ce sotn juste des noms, ils sont identiques dans leur nature, c’est après leur association dans l’interface de polkadot que leur rôle va diverger
virer les coin polkadot dans un des accounts, de préférence celui avec le stash.
Aller à la page principale de polkadot, aller dans Network > Staking, puis dans Account actions, cliquer sur le signe +à côté de Nominator, il vous faut un être un nominator avant de pouvoir nommer un validator. Nommez 16 validateurs.
Etudiez bien les profil des validateurs avant de le nommer. Choisissez ceux qui sont identifiés, ayant un bon historique (pas de slashing).
Lorsque vous téléchargez un fichier depuis Internet, vous pouvez vérifier le checksum (quand il est donné par le site) d’un fichier pour vérifier qu’il n’est pas corrompu, c’est à dire que que le checksum est identique à celui donné par le site.
Windows
certutil -hashfile nom_fichier SHA256
Linux
sha256sum nom_fichier
Ces commandes ont bien sûr des options mais ici c’est le minimum syndical qui est montré, et c’est ce dont on a le plus souvent besoin.
Le problème de conversion d’une chaine en nombre entier
Lorsqu’on a une chaine de caractères qu’on cherche à convertir en nombre, il faut se poser la question de si c’est faisable.
Imaginons qu’on ait une variable à tester dont le type est un string :
ns = "125"
n = int(ns)
Mais si on a une chaine de caractère qui ne contient pas purement des chiffres (voire une chaine vide):
nm1 = "12.3"
nm2 = "z123"
nm3 = ""
Tenter de convertir ces chaines en entier déclenchera une erreur de type ValueError.
Tester si une chaine est un nombre entier avec isdigit()
En Python tout est objet, un nombre entier est un objet, un booléen est un objet, un float est un objet,(vous pouvez le voir en utilisant la notation pointée). Ces objets ont des méthodes (c’est le nom en OOP pour une fonction). Et dans le cas des chaines de caractères, uen de ces méthode est isdigit().
n = "123"
print(n.isdigit()) # True
n = ""
print(n.isdigit()) # False
#on peut encore écrire
print("123".isdigit()) #True
Ainsi avant de convertir en entier, testez la chaine avec isdigit() avant d’utiliser int()
Installez au préalable Mysql, le plus rapide (avec zéro configuration ) étant d’installer la solution de développement PHP Laragon si vous êtes sous windows.
Ensuite il faudra redéfinir le mot de passe root, allez dans Laragon click droit sur le bouton Database > Mysql > Change root password.
Connexion à Mysql en Python
from mysql.connector import MySQLConnection, Error
def connect():
""" Connect to MySQL database """
conn = None
try:
conn = mysql.connector.connect(host='localhost',
database='boutique',
user='root',
password='root')
if conn.is_connected():
print('Connected to MySQL database')
except Error as e:
print(e)
finally:
if conn is not None and conn.is_connected():
conn.close()
if __name__ == '__main__':
connect()
Exécuter une requête SQL en Python
from mysql.connector import MySQLConnection, Error
def query_with_fetchone():
try:
conn = MySQLConnection(host='localhost',
database='boutique',
user='root',
password='root')
cursor = conn.cursor()
cursor.execute("SELECT * FROM staffs")
row = cursor.fetchone()
while row is not None:
print(row)
row = cursor.fetchone()
except Error as e:
print(e)
finally:
cursor.close()
conn.close()
query_with_fetchone()
Sqlite est une base de donnée un peu spéciale, puisque la base tient dans un fichier binaire, avec extension .db, c’est donc quelque chose de très simple, et Sqlite est destiné à être utilisé sur des systèmes embarqués.
Donc pas besoin d’installer un programme, c’est la librairie Python qui va s’ocuper de cela. De plus c’est dans la librairie standard, ce qui veut dire que l’on n’ pas besoin de faire un pip install.
La librairie Python sqlite3
Il suffit tout simplement d’importer la librairie sqlite3, de créer une connexion pour créer le fichier binaire de la base de données
import sqlite3
from sqlite3 import Error
def create_connection(db_file):
""" crée une connexion SQLite si lea DB n'existe pas elle sera créée"""
conn = None
try:
conn = sqlite3.connect(db_file)
print(sqlite3.version)
except Error as e:
print(e)
finally:
if conn:
conn.close()
if __name__ == '__main__':
create_connection(r"C:\db\pythonsqlite.db")
Sivous exécutez pour la première fois ce script, le fichier pythonslqite.db sera créé, par contre il vous faudra avoir le répertoire déjà créé, sinon vous aurez une erreur. Vous pouvez aussi créer une base de données avec DB Browser, un browser de base sqlite.
Requêter dans Sqlite en Python
Voici la recette pour faire une requête SQL en Python dans Sqlite. On acréé la base de données test.db, et il y a une table items. Vous pouvez importer dans DBBrowser le fichier contenant les données ci-dessous ou exécuter le SQL suivant :
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "items" (
"id" INTEGER,
"nom" TEXT,
"prix" INTEGER
);
INSERT INTO "items" VALUES (1,'Pomme',5);
INSERT INTO "items" VALUES (1,'Poire',3);
INSERT INTO "items" VALUES (1,'raisin',13);
COMMIT;
import sqlite3
from sqlite3 import Error
def create_connection(db_file):
conn = None
try:
conn = sqlite3.connect(db_file)
except Error as e:
print(e)
return conn
def select_items(conn):
"""
Query all rows in the tasks table
:param conn: the Connection object
:return:
"""
cur = conn.cursor()
cur.execute("SELECT * FROM items")
rows = cur.fetchall()
for row in rows:
print(row)
db_file = "c:\\Users\\admin\\Documents\\test.db"
conn = create_connection(db_file)
select_items(conn)
list = [i for i in range(5)]
print(list) # [0,1,2,3,4]
list2 = [ i * i for i in range(10)]
print(list2) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
If dans compréhension de liste
list3 = [ n for n in range(10) if n % 2 == 0]
print(list3) # [0, 2, 4, 6, 8]
If imbriqués
list4 = [ n for n in range(10) if n % 2 == 0 if n >= 5]
print(list4) # [6, 8]
If…Else dans compréhension de liste
list5 = ["Even" if i%2==0 else "Odd" for i in range(10)]
print(list5) #
list6 = [str(i) + ":Pair" if i%2==0 else str(i) + ":Impair" for i in range(10)]
print(list6)
# ['0:Pair', '1:Impair', '2:Pair', '3:Impair', '4:Pair', '5:Impair', '6:Pair', '7:Impair', '8:Pair', '9:Impair']