{"id":5861,"date":"2024-08-30T04:13:43","date_gmt":"2024-08-30T04:13:43","guid":{"rendered":"https:\/\/wikiform.fr\/codespace\/inserer-des-donnees-dans-sqlite-avec-python\/"},"modified":"2024-08-30T04:13:47","modified_gmt":"2024-08-30T04:13:47","slug":"inserer-des-donnees-dans-sqlite-avec-python","status":"publish","type":"post","link":"https:\/\/wikiform.fr\/codespace\/inserer-des-donnees-dans-sqlite-avec-python\/","title":{"rendered":"10.4 Ins\u00e9rer des Donn\u00e9es dans SQLite avec Python"},"content":{"rendered":"\u00ab\u00a0`html\n\n<p><strong>Ins\u00e9rer des Donn\u00e9es dans SQLite avec Python<\/strong> est une comp\u00e9tence essentielle pour d\u00e9velopper des applications solides et performantes. Ma\u00eetriser cette technique vous permettra de stocker, r\u00e9cup\u00e9rer et manipuler efficacement des donn\u00e9es dans vos projets Python. Voyons ensemble comment proc\u00e9der \u00e9tape par \u00e9tape, illustr\u00e9 par des exemples de code concrets.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction \u00e0 <strong>SQLite avec Python<\/strong><\/h2>\n\n\n\n<div id=\"videoContainer\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;\">\n  <iframe src=\"https:\/\/player.vimeo.com\/video\/583419963?dnt=1&#038;fullscreen=0&#038;pip=0\" loading=\"lazy\" loading=\"lazy\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" frameborder=\"0\" allow=\"autoplay\" allowfullscreen id=\"vimeoPlayer\"><\/iframe>\n  \n  <!-- Popup Desktop -->\n  <div id=\"popupContainer\" class=\"desktop-popup\" style=\"display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 90%; max-width: 400px; padding: 20px; border-radius: 10px; text-align: center; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); background-color: rgba(255, 255, 255, 0.95); box-sizing: border-box;\">\n    <h2 style=\"color: #333; font-size: 1.5em; margin: 10px 0;\" id=\"profitez-de-loffre-spciale-\">Profitez de l\u2019offre sp\u00e9ciale !<\/h2>\n    <p style=\"color: #e74c3c; font-size: 1.2em; margin: 10px 0;\">Obtenez notre cours pour seulement <strong id=\"price\">29.5\u20ac<\/strong> au lieu de <del>59\u20ac<\/del> !<\/p>\n    <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" style=\"display: block; padding: 10px 20px; background-color: #701CF5; color: #fff; text-decoration: none; border-radius: 5px; font-weight: bold; font-size: 1em; margin: 20px auto;\" rel=\"noopener\">Commencer maintenant<\/a>\n    <button onclick=\"closePopup()\" style=\"padding: 10px 20px; font-size: 1em;\">Fermer<\/button>\n  <\/div>\n\n  <!-- Popup Mobile -->\n  <div id=\"popupContainerMobile\" class=\"mobile-popup\" style=\"display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80%; max-width: 300px; padding: 15px; border-radius: 10px; text-align: center; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); background-color: rgba(255, 255, 255, 0.95); box-sizing: border-box;\">\n    <p style=\"color: #e74c3c; font-size: 1em; margin: 5px 0;\">Cours sp\u00e9cial \u00e0 <strong id=\"priceMobile\">29.5\u20ac<\/strong> au lieu de <del>59\u20ac<\/del> !<\/p>\n    <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" style=\"display: inline-block; padding: 8px 15px; background-color: #701CF5; color: #fff; text-decoration: none; border-radius: 5px; font-weight: bold; font-size: 0.9em;\" rel=\"noopener\">Commencer maintenant<\/a>\n    <button onclick=\"closePopup()\" style=\"padding: 5px 10px; font-size: 0.9em;\">Fermer<\/button>\n  <\/div>\n<\/div>\n\n<script src=\"https:\/\/player.vimeo.com\/api\/player.js\"><\/script>\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    var iframe = document.getElementById('vimeoPlayer');\n    var player = new Vimeo.Player(iframe);\n    var isPopupDisplayed = false;\n\n    player.on('play', function() {\n        if (!isPopupDisplayed) {\n            player.on('timeupdate', function(data) {\n                if (data.seconds >= 120 && !isPopupDisplayed) { \/\/ 120 seconds = 2 minutes\n                    \/\/ Pause the video and display the popup\n                    player.pause().then(function() {\n                        if (window.innerWidth > 768) {\n                            document.querySelector('.desktop-popup').style.display = 'block';\n                        } else {\n                            document.querySelector('.mobile-popup').style.display = 'block';\n                        }\n                        fetchPriceAndUpdatePopup();\n                        isPopupDisplayed = true;\n                    });\n                }\n            });\n        }\n    });\n\n    function fetchPriceAndUpdatePopup() {\n        fetch('https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144')\n            .then(response => response.text())\n            .then(html => {\n                var parser = new DOMParser();\n                var fetchedDoc = parser.parseFromString(html, 'text\/html');\n                var priceElement = fetchedDoc.querySelector('.ammount .fw-500');\n                var originalPriceElement = fetchedDoc.querySelector('.ammount del');\n                var price = priceElement ? priceElement.textContent.trim() : '29.5\u20ac';\n                var originalPrice = originalPriceElement ? originalPriceElement.textContent.trim() : '59\u20ac';\n\n                document.getElementById('price').textContent = price;\n                document.getElementById('priceMobile').textContent = price;\n                document.querySelector('.desktop-popup del').textContent = originalPrice;\n                document.querySelector('.mobile-popup del').textContent = originalPrice;\n            })\n            .catch(error => console.error('Error fetching the price:', error));\n    }\n\n    function closePopup() {\n        document.querySelector('.desktop-popup').style.display = 'none';\n        document.querySelector('.mobile-popup').style.display = 'none';\n        player.play(); \/\/ Allows resuming the video only after closing the popup\n    }\n});\n<\/script>\n\n\n\n<p>SQLite est une biblioth\u00e8que C qui fournit une base de donn\u00e9es SQL l\u00e9g\u00e8re et int\u00e9gr\u00e9e dans une application. Elle ne n\u00e9cessite pas de configuration serveur distincte, ce qui en fait un choix populaire pour les projets plus l\u00e9gers. En combinaison avec Python, SQLite devient un outil puissant pour g\u00e9rer des bases de donn\u00e9es de mani\u00e8re simple et efficace. Pour commencer, il est important de savoir <a href=\"https:\/\/wikiform.fr\/codespace\/installer-python-sur-mac-2024-guide-complet\">comment installer Python sur votre syst\u00e8me<\/a>.<\/p>\n\n\n\n<p>Nous allons aborder ce tutoriel en plusieurs parties :<\/p>\n<ul>\n  <li>Cr\u00e9ation et connexion \u00e0 une base de donn\u00e9es SQLite<\/li>\n  <li>Cr\u00e9ation de tables<\/li>\n  <li>Insertion de donn\u00e9es<\/li>\n  <li>Gestion des erreurs<\/li>\n  <li><a href=\"https:\/\/wikiform.fr\/codespace\/lire-des-donnees-depuis-sqlite-en-python\">Lecture des donn\u00e9es<\/a><\/li>\n  <li><a href=\"https:\/\/wikiform.fr\/codespace\/modifier-des-donnees-dans-une-table-sqlite\">Modification des donn\u00e9es<\/a><\/li>\n  <li><a href=\"https:\/\/wikiform.fr\/codespace\/suppression-de-donnees-dans-sqlite-avec-python\">Suppression des donn\u00e9es<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Connexion \u00e0 une Base de Donn\u00e9es SQLite<\/h3>\n\n\n\n<p>La premi\u00e8re \u00e9tape consiste \u00e0 connecter votre application Python \u00e0 une base de donn\u00e9es SQLite. Utilisons le module <code>sqlite3<\/code> qui fait partie de la biblioth\u00e8que standard de Python :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import sqlite3\n\n# Connexion \u00e0 une base de donn\u00e9es (ou cr\u00e9ation si elle n'existe pas)\nconn = sqlite3.connect('example.db') \n\n# Cr\u00e9ation d'un curseur permettant d'ex\u00e9cuter des commandes SQL\nc = conn.cursor()\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Cr\u00e9ation de Tables<\/h3>\n\n\n\n<p>Une fois connect\u00e9 \u00e0 la base de donn\u00e9es, nous pouvons cr\u00e9er des tables pour stocker nos donn\u00e9es. Voici comment cr\u00e9er une table appel\u00e9e <code>utilisateurs<\/code> avec des champs pour l&rsquo;ID, le nom et l&rsquo;\u00e2ge :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code># Ex\u00e9cution d'une commande SQL pour cr\u00e9er une table\nc.execute('''\n          CREATE TABLE utilisateurs\n          (id INTEGER PRIMARY KEY, nom TEXT, \u00e2ge INTEGER)\n          ''')\n          \n# Sauvegarde (commit) des modifications\nconn.commit()\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Insertion de Donn\u00e9es<\/h3>\n\n\n\n<p>Maintenant que nous avons une table, nous pouvons ins\u00e9rer des donn\u00e9es dedans. Utilisons la syntaxe SQL <code>INSERT INTO<\/code> pour ajouter des enregistrements :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code># Insertion d'un enregistrement\nc.execute('''\n          INSERT INTO utilisateurs (nom, \u00e2ge)\n          VALUES (?,?)\n          ''', ('Alice', 30))\n          \n# Sauvegarde des modifications\nconn.commit()\n<\/code><\/pre>\n\n\n\n<p>Pour ins\u00e9rer plusieurs enregistrements en une seule fois, vous pouvez utiliser la m\u00e9thode <code>executemany<\/code> :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code># Insertion de plusieurs enregistrements\nutilisateurs = [('Bob', 25), ('Charlie', 35), ('Diana', 28)]\nc.executemany('INSERT INTO utilisateurs (nom, \u00e2ge) VALUES (?,?)', utilisateurs)\n\n# Sauvegarde des modifications\nconn.commit()\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Gestion des Erreurs<\/h3>\n\n\n\n<p>Lors de toute op\u00e9ration de base de donn\u00e9es, il est essentiel de g\u00e9rer les erreurs pour garantir la robustesse de l&rsquo;application. Utilisons un bloc <code>try-except<\/code> pour attraper les exceptions possibles :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>try:\n    # Code susceptible de provoquer des exceptions\n    c.execute('''\n              INSERT INTO utilisateurs (nom, \u00e2ge)\n              VALUES (?,?)\n              ''', ('Elise', 'Twenty')) # Erreur intentionnelle\n    conn.commit()\nexcept sqlite3.Error as e:\n    print(f\"Une erreur s'est produite: {e}\")\n<\/code><\/pre>\n\n\n\n<p>Il est \u00e9galement judicieux de s&rsquo;assurer que la connexion \u00e0 la base de donn\u00e9es est ferm\u00e9e proprement, m\u00eame en cas d&rsquo;erreur :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>finally:\n    c.close()\n    conn.close()\n<\/code><\/pre>\n\n\n\n<p>En appliquant ces concepts, vous pouvez d\u00e9sormais ins\u00e9rer des donn\u00e9es dans SQLite avec Python de mani\u00e8re efficace et s\u00e9curis\u00e9e. Pour aller plus loin, explorez des fonctionnalit\u00e9s additionnelles telles que les transactions, les requ\u00eates complexes et l&rsquo;optimisation des performances de la base de donn\u00e9es. Pour commencer avec les transactions, voyez notre <a href=\"https:\/\/wikiform.fr\/codespace\/gestion-des-transactions-avec-sqlite\">guide sur la gestion des transactions avec SQLite<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Ma\u00eetriser l&rsquo;insertion de donn\u00e9es dans SQLite \u00e0 l&rsquo;aide de Python vous permet de d\u00e9velopper des applications robustes et performantes. Ce tutoriel vous a fourni les bases n\u00e9cessaires pour vous lancer, mais n&rsquo;h\u00e9sitez pas \u00e0 explorer davantage pour d\u00e9couvrir d&rsquo;autres fonctionnalit\u00e9s avanc\u00e9es. Continuez \u00e0 apprendre et \u00e0 exp\u00e9rimenter pour am\u00e9liorer vos comp\u00e9tences en gestion de bases de donn\u00e9es.<\/p>\n\n\n\n<a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/wikiform.fr\/codespace\/wp-content\/uploads\/2024\/07\/learnify-formation-PYTHON-offre-50.gif\" loading=\"lazy\" alt=\"Learnify Formation Python Offre 50%\" title=\"\"><\/a>\n\n\n\n<p>Pour plus de tutoriels et de ressources, consultez nos articles sur <a href=\"https:\/\/wikiform.fr\/codespace\/optimiser-les-performances-de-sqlite\">l&rsquo;optimisation des performances de SQLite<\/a> et <a href=\"https:\/\/wikiform.fr\/codespace\/gestion-des-transactions-avec-sqlite\">la gestion des transactions avec SQLite<\/a>. Apprenez et progressez avec nous pour devenir un d\u00e9veloppeur Python accompli. Pour bien d\u00e9marrer avec SQLite, d\u00e9couvrez notre article d\u00e9taill\u00e9 sur <a href=\"https:\/\/wikiform.fr\/codespace\/creation-de-bases-de-donnees-sqlite-en-python\">la cr\u00e9ation de bases de donn\u00e9es SQLite en Python<\/a>.<\/p>\n\n\n\n<p>En plus de l&rsquo;insertion de donn\u00e9es dans SQLite, il est \u00e9galement crucial de comprendre <a href=\"https:\/\/wikiform.fr\/codespace\/comprendre-les-variables-en-python\">la gestion des variables en Python<\/a> pour une manipulation efficace des donn\u00e9es. Vous pouvez \u00e9galement <a href=\"https:\/\/wikiform.fr\/codespace\/enregistrer-des-donnees-dans-un-fichier-python\">enregistrer des donn\u00e9es dans des fichiers<\/a> pour une double sauvegarde et une s\u00e9curit\u00e9 accrue. De plus, explorer <a href=\"https:\/\/wikiform.fr\/codespace\/ouvrir-et-exploiter-un-fichier-en-python\">l&rsquo;ouverture et l&rsquo;exploitation des fichiers en Python<\/a> peut s&rsquo;av\u00e9rer tr\u00e8s pratique pour des t\u00e2ches de manipulation de donn\u00e9es plus complexes.<\/p>\n\n\u00ab\u00a0`","protected":false},"excerpt":{"rendered":"<p>\u00ab\u00a0`html Ins\u00e9rer des Donn\u00e9es dans SQLite avec Python est une comp\u00e9tence essentielle pour d\u00e9velopper des applications solides et performantes. Ma\u00eetriser cette technique vous permettra de&#8230;<\/p>\n","protected":false},"author":4,"featured_media":2924,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[18],"class_list":["post-5861","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-tutoriels"],"acf":[],"_titre_de_la_formation":null,"_description_":null,"_objectifs_pedagogiques":null,"_programme_":null,"_url_de_limage":null,"_materiel_necessaire":null,"_modalites_devaluation_des_acquis":null,"_moyens_pedagogiques_et_techniques":null,"_accessibilite_":null,"_formateur_":null,"menu_order":0,"_links":{"self":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/comments?post=5861"}],"version-history":[{"count":1,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5861\/revisions"}],"predecessor-version":[{"id":5862,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5861\/revisions\/5862"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media\/2924"}],"wp:attachment":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media?parent=5861"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/categories?post=5861"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/tags?post=5861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}