- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Pour pouvoir utiliser TinyDB, il faut déjà l'installer. Donc on va utiliser Python 3.9et pip avec python 3.9-m pip pour installer TinyDB. Vous inscrivez TinyDB comme ça en
00:00:12 :minuscule. On valide avec entrée et ça va être très rapide puisque, comme je vous disais enintroduction, cette bibliothèque est très légère. Donc une fois qu'on l'a installé,
00:00:21 :on va pouvoir à l'intérieur de Visual Studio Code l'utiliser. Pour ça, on l'importe. Doncon va importer depuis le module TinyDB la classe TinyDB comme ceci. Donc là vous voyez encore
00:00:31 :l'intérêt de la nomenclature puisque on comprend bien ici qu'on a le module et qu'ici on a la classegrâce au majuscule. Donc à partir de cette classe, on va pouvoir créer une instance de notre base de
00:00:42 :données. Donc je vais le mettre dans une variable que je vais appeler db et on va créer une instancede notre classe TinyDB. Et là on a deux options. La première option c'est de stocker la base de
00:00:52 :données dans un fichier JSON. Donc je peux indiquer le chemin vers un fichier JSON. Je vaismettre un chemin relatif. Vous pouvez mettre un chemin absolu également. Là en indiquant un chemin
00:01:01 :relatif, la base de données sera créée directement dans le dossier dans lequel je me trouve. Donc cedossier TinyDB ici. Donc si je fais juste ça, que je sauvegarde et que je lance le script, vous allez
00:01:10 :voir qu'on a une base de données qui est créée. Donc on a un fichier data.json qui apparaît et sije l'ouvre pour l'instant je n'ai rien à l'intérieur. Donc c'est normal mais le fichier est bien créé.
00:01:20 :Maintenant on a d'autres options. L'autre option qu'on peut faire c'est de le faire en mémoire.Pour l'instant là on a créé un fichier sur le disque mais on pourrait très bien pour certainsscripts avoir envie de ne pas sauvegarder les données sur le disque mais de juste les sauvegarder
00:01:33 :en mémoire le temps que l'on exécute notre script. Et une fois qu'on ferme le script et bien lesdonnées et la base de données sont supprimées. Donc ça on peut le faire en utilisant le memory
00:01:42 :storage. Donc pour ça il va falloir l'importer. On va dire from tinydb.storage import memorystorage. Donc cette classe ici et plutôt que de mettre ici data.json on va indiquer que pour le
00:01:55 :storage on veut utiliser la classe memory storage. Et si je fais ça je vais supprimer le fichierdata.json pour revenir à un état d'origine. Si je fais ça et que je sauvegarde le script cette
00:02:06 :fois-ci quand je l'exécute vous voyez qu'aucun fichier n'est créé. Donc dans ce cas ci on avraiment une base de données qui est créée uniquement en mémoire. Dans la suite de cette
00:02:14 :formation moi je vais vous montrer avec un fichier json pour qu'on puisse inspecter ce qu'on a àl'intérieur de notre base de données. Donc je vais remettre ici le chemin relatif vers la base
00:02:23 :de données. Vous allez pouvoir également spécifier à la suite des paramètres que vous retrouverez avecles fichiers json. Donc par exemple si on souhaite avoir un niveau d'indentation et des données qui
00:02:33 :sont plus facilement lisibles on peut utiliser le paramètre indent que l'on retrouve avec lemodule json et mettre une indentation de 4 et ça ça va avoir comme effet, je vous le montrerai plustard visuellement, de mieux organiser les données visuellement à l'intérieur du fichier json pourne pas tout avoir sur une seule ligne. Donc une fois qu'on a créé notre base de données on va
00:02:53 :pouvoir bien entendu insérer des données à l'intérieur de cette base. Pour ça on va utiliserla méthode insert sur notre objet db ici et on va passer un dictionnaire et c'est ce dictionnairequi va représenter les données que l'on souhaite insérer. Donc on n'a pas besoin de créer de
00:03:07 :modèles ou quoi que ce soit c'est directement au moment de l'insertion qu'on va spécifier ce quel'on souhaite mettre dans la base. Donc je crée un dictionnaire et on va par exemple stocker dans
00:03:16 :notre cas une liste d'utilisateurs avec un score. Donc on va dire par exemple name et on va utiliserpatrick et pour le score on va dire qu'il a un score de 0. Donc si je fais juste ça et que j'exécute
00:03:27 :le code on va avoir notre fichier qui est créé et si je l'affiche vous voyez qu'on a bien patrickavec son score de 0 qui est dans la base de données. Vous remarquez également que par défaut
00:03:36 :on a en fait une table qui est créée qui s'appelle default et on a également un identifiant pournotre patrick. Donc ça c'est géré automatiquement par tinydb c'est un petit peu différent donc de
00:03:47 :ce qu'on aurait si on avait uniquement un fichier json que l'on créerait nous-mêmes ou dans ce casci on aurait uniquement notre dictionnaire ici. Là vous voyez qu'il y a un petit peu plus de
00:03:55 :données mais vous n'avez pas besoin de vous en faire c'est géré automatiquement. Donc on peutinsérer des données comme ça on peut également insérer plusieurs données d'un coup avec uneautre méthode qui est insert multiple comme ceci. Donc attention il n'y a pas de s c'est bien insert
00:04:09 :multiple et pas de s à la fin. Et là on va pouvoir lui passer une liste tout simplement de dictionnaires.Donc je vais recopier le dictionnaire que j'avais ici. Éventuellement on pourrait bien entendu
00:04:19 :utiliser des objets avec des dictionnaires qui sont formatés automatiquement. Là on fait justedu copier-coller donc on veut s'assurer d'avoir les mêmes données donc à chaque fois on rentreles mêmes clés et les mêmes valeurs. Mais si vraiment on avait en fait un script plus complexe
00:04:32 :on ne passerait pas par des dictionnaires comme ça mais probablement qu'on ferait un objet etqu'on ferait une méthode qui nous permettrait de représenter cet objet sous forme de dictionnairepour ensuite pouvoir l'ajouter dans notre base de données. Donc là on va ajouter d'autres personnes
00:04:45 :on va dire par exemple Julie avec un score de 50 et on va ajouter un autre dictionnaire donc avecpar exemple on va mettre Paul avec un score de 120. Et ça ça nous permet d'insérer plusieurs
00:04:56 :éléments d'un coup donc je vais commenter cette ligne pour ne pas rajouter Patrick dans notrebase de données puisqu'il est déjà dans la base. Je relance le script et si on va voir notre data
00:05:05 :vous voyez ici qu'on a bien tous les éléments qui sont dans la base de données avec un identifiantdifférent qui est géré automatiquement là encore vous voyez que quand on rajoute des données onrepart à 2 et à 3 ils sont rajoutés encore quelque chose on repartirait à 4 etc ok ? Donc ça c'est
00:05:20 :géré automatiquement vous remarquerez également qu'il n'y a pas la gestion des doublons ou quoique ce soit de ce genre si je réexécute le script une deuxième fois et que je retourne voir dans labase de données vous voyez qu'on a ajouté une autre fois Julie et Paul et donc ce n'est pas du
00:05:33 :tout un problème comme je vous disais c'est vraiment assez simple comme fonctionnement doncc'est à vous de faire ces vérifications si vous souhaitez vérifier auparavant si un utilisateur adéjà été ajouté ou non dans la base de données. Pour finir je vais juste vous montrer ce qui se
00:05:45 :passe si j'enlève le indent vous allez voir qu'on a une base de données qui est un peu plus difficileà lire donc si je retourne dans data.json vous voyez qu'on a tout sur la même ligne donc comme
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.