{"id":5863,"date":"2024-08-30T12:12:09","date_gmt":"2024-08-30T12:12:09","guid":{"rendered":"https:\/\/wikiform.fr\/codespace\/lire-des-donnees-depuis-sqlite-en-python\/"},"modified":"2024-08-30T12:12:13","modified_gmt":"2024-08-30T12:12:13","slug":"lire-des-donnees-depuis-sqlite-en-python","status":"publish","type":"post","link":"https:\/\/wikiform.fr\/codespace\/lire-des-donnees-depuis-sqlite-en-python\/","title":{"rendered":"10.5 Lire des Donn\u00e9es depuis SQLite en Python"},"content":{"rendered":"\u00ab\u00a0`html\n\n<p><strong>Lire des Donn\u00e9es depuis SQLite en Python<\/strong> est une comp\u00e9tence essentielle pour tout d\u00e9veloppeur travaillant avec des bases de donn\u00e9es. Que vous soyez d\u00e9butant ou exp\u00e9riment\u00e9, la capacit\u00e9 d&rsquo;extraire et de manipuler des donn\u00e9es \u00e0 l&rsquo;aide de Python et SQLite peut consid\u00e9rablement am\u00e9liorer vos projets. Cet article vous guidera pas \u00e0 pas, avec des exemples de code concrets, pour vous permettre de ma\u00eetriser cette comp\u00e9tence.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction \u00e0 <strong>Lire des Donn\u00e9es depuis SQLite en 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\/583420943?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 ? originalPrice.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 logicielle qui impl\u00e9mente un moteur de base de donn\u00e9es SQL transactionnelle, sans avoir besoin d&rsquo;un serveur de base de donn\u00e9es s\u00e9par\u00e9. C&rsquo;est un outil id\u00e9al pour les projets l\u00e9gers et les applications embarqu\u00e9es. En Python, nous pouvons interagir avec SQLite en utilisant le module <code>sqlite3<\/code>, qui est disponible par d\u00e9faut dans les biblioth\u00e8ques standard. D\u00e9couvrons comment lire des donn\u00e9es depuis une base de donn\u00e9es SQLite en Python.<\/p>\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 se connecter \u00e0 une base de donn\u00e9es SQLite. Si la base de donn\u00e9es n&rsquo;existe pas, elle sera cr\u00e9\u00e9e automatiquement :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import sqlite3\n\n# Connexion \u00e0 la base de donn\u00e9es (elle sera cr\u00e9\u00e9e si elle n'existe pas)\nconn = sqlite3.connect('example.db')\n\n# Cr\u00e9ation d'un curseur\ncur = conn.cursor()\n\nprint(\"Connexion \u00e9tablie avec succ\u00e8s!\")\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Cr\u00e9ation d&rsquo;une Table pour Stocker des Donn\u00e9es<\/h3>\n\n\n\n<p>Avant de lire des donn\u00e9es, nous devons nous assurer que notre base de donn\u00e9es contient une table avec des donn\u00e9es. Voici comment cr\u00e9er une table et ins\u00e9rer des donn\u00e9es :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code># Cr\u00e9ation de la table\ncur.execute('''\nCREATE TABLE IF NOT EXISTS users (\n    id INTEGER PRIMARY KEY,\n    username TEXT NOT NULL,\n    age INTEGER NOT NULL\n)\n''')\n\n# Insertion de quelques donn\u00e9es\ncur.execute(\"INSERT INTO users (username, age) VALUES ('Alice', 30)\")\ncur.execute(\"INSERT INTO users (username, age) VALUES ('Bob', 24)\")\nconn.commit()\n\nprint(\"Table cr\u00e9\u00e9e et donn\u00e9es ins\u00e9r\u00e9es avec succ\u00e8s!\")\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Lecture des Donn\u00e9es depuis SQLite<\/h3>\n\n\n\n<p>Une fois que nous avons une table avec des donn\u00e9es, nous pouvons utiliser des requ\u00eates SQL pour lire ces donn\u00e9es. Voici comment s\u00e9lectionner et afficher les donn\u00e9es des utilisateurs :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code># Lecture des donn\u00e9es\ncur.execute(\"SELECT * FROM users\")\n\n# R\u00e9cup\u00e9ration de toutes les lignes\nrows = cur.fetchall()\n\n# Affichage des donn\u00e9es\nfor row in rows:\n    print(row)\n\n# Fermeture de la connexion\nconn.close()\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Filtrage des Donn\u00e9es avec WHERE<\/h3>\n\n\n\n<p>Souvent, vous aurez besoin de filtrer les donn\u00e9es en fonction de certains crit\u00e8res. Utilisons la clause <code>WHERE<\/code> pour s\u00e9lectionner les utilisateurs dont l&rsquo;\u00e2ge est sup\u00e9rieur \u00e0 25 ans :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code># Reconnexion \u00e0 la base de donn\u00e9es\nconn = sqlite3.connect('example.db')\ncur = conn.cursor()\n\n# Filtrer les donn\u00e9es avec WHERE\ncur.execute(\"SELECT * FROM users WHERE age > 25\")\n\n# R\u00e9cup\u00e9ration des lignes correspondantes\nfiltered_rows = cur.fetchall()\n\n# Affichage des donn\u00e9es filtr\u00e9es\nfor row in filtered_rows:\n    print(row)\n\n# Fermeture de la connexion\nconn.close()\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Lecture et Affichage des Donn\u00e9es avec Pandas<\/h3>\n\n\n\n<p>Pour ceux qui pr\u00e9f\u00e8rent utiliser <code>Pandas<\/code> pour analyser et manipuler des donn\u00e9es, nous pouvons lire les donn\u00e9es d&rsquo;une base de donn\u00e9es SQLite directement dans un DataFrame :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import pandas as pd\n\n# Reconnexion \u00e0 la base de donn\u00e9es\nconn = sqlite3.connect('example.db')\n\n# Lecture des donn\u00e9es dans un DataFrame Pandas\ndf = pd.read_sql_query(\"SELECT * FROM users\", conn)\n\n# Affichage du DataFrame\nprint(df)\n\n# Fermeture de la connexion\nconn.close()\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Utilisation des Param\u00e8tres de Requ\u00eate pour Plus de S\u00e9curit\u00e9<\/h3>\n\n\n\n<p>Pour \u00e9viter les attaques par injection SQL, il est crucial d&rsquo;utiliser des requ\u00eates param\u00e9tr\u00e9es. Voici comment vous pouvez le faire :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code># Reconnexion \u00e0 la base de donn\u00e9es\nconn = sqlite3.connect('example.db')\ncur = conn.cursor()\n\n# Utilisation d'une requ\u00eate param\u00e9tr\u00e9e\nuser_age = 25\ncur.execute(\"SELECT * FROM users WHERE age > ?\", (user_age,))\n\n# R\u00e9cup\u00e9ration des lignes correspondantes\nsafe_filtered_rows = cur.fetchall()\n\n# Affichage des donn\u00e9es filtr\u00e9es\nfor row in safe_filtered_rows:\n    print(row)\n\n# Fermeture de la connexion\nconn.close()\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion sur la Lecture des Donn\u00e9es SQLite en Python<\/h2>\n\n\n\n<p><strong>Lire des Donn\u00e9es depuis SQLite en Python<\/strong> est une t\u00e2che courante et essentielle pour de nombreux d\u00e9veloppeurs. En utilisant les techniques d\u00e9crites ci-dessus, vous pouvez facilement extraire et manipuler des donn\u00e9es dans vos projets. D\u00e9couvrez davantage de tutoriels Python sur notre blog et explorez les nombreuses possibilit\u00e9s offertes par SQLite et Python pour optimiser vos applications. N&rsquo;h\u00e9sitez pas \u00e0 consulter notre <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" rel=\"noopener\">cours complet sur le d\u00e9veloppement Python<\/a> pour en savoir plus.<\/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 optimiser vos comp\u00e9tences en d\u00e9veloppement Python, il est crucial de ma\u00eetriser les bases. Consultez notre guide complet sur la <a href=\"https:\/\/wikiform.fr\/codespace\/installer-python-sur-mac-2024-guide-complet\">installation de Python sur Mac<\/a> ou apprenez \u00e0 <a href=\"https:\/\/wikiform.fr\/codespace\/installer-python-sur-windows-facilement\">installer Python sur Windows<\/a> pour d\u00e9buter. Une fois votre environnement pr\u00eat, commencez par cr\u00e9er votre <a href=\"https:\/\/wikiform.fr\/codespace\/premier-programme-python-hello-world\">premier programme Python : Hello World<\/a>. Pour aller plus loin dans la gestion de donn\u00e9es, consultez notre section sur les <a href=\"https:\/\/wikiform.fr\/codespace\/comprendre-les-variables-en-python\">variables en Python<\/a> et d\u00e9couvrez les <a href=\"https:\/\/wikiform.fr\/codespace\/utiliser-les-operateurs-mathematiques-en-python\">op\u00e9rateurs math\u00e9matiques<\/a>.<\/p>\n\n\n\n<p>En utilisant <a href=\"https:\/\/wikiform.fr\/codespace\/creation-de-bases-de-donnees-sqlite-en-python\">SQLite<\/a>, vous pouvez cr\u00e9er des bases de donn\u00e9es robustes. Une fois familier avec SQLite, suivez notre guide pour <a href=\"https:\/\/wikiform.fr\/codespace\/creation-de-tables-sqlite-en-python-guide\">cr\u00e9er des tables SQLite en Python<\/a> et d\u00e9couvrez comment <a href=\"https:\/\/wikiform.fr\/codespace\/inserer-des-donnees-dans-sqlite-avec-python\">ins\u00e9rer des donn\u00e9es<\/a> correctement. La lecture de donn\u00e9es en Python avec SQLite deviendra une seconde nature gr\u00e2ce \u00e0 ces ressources. Simplifiez vos manipulations de donn\u00e9es en utilisant <a href=\"https:\/\/wikiform.fr\/codespace\/lecture-conditionnelle-dans-sqlite-avec-python\">la lecture conditionnelle dans SQLite<\/a>.<\/p>\n\n\n\n<p>Si vous souhaitez aller encore plus loin, explorez notre guide sur <a href=\"https:\/\/wikiform.fr\/codespace\/gerer-erreurs-et-exceptions-en-python\">la gestion des erreurs et exceptions<\/a>. Ces comp\u00e9tences sont essentielles pour s&rsquo;assurer que vos scripts fonctionnent de mani\u00e8re fiable. Enfin, pour une approche plus avanc\u00e9e, apprenez \u00e0 <a href=\"https:\/\/wikiform.fr\/codespace\/creation-de-bases-de-donnees-sqlite-en-python\">cr\u00e9er des bases de donn\u00e9es SQLite<\/a> et \u00e0 les g\u00e9rer efficacement.<\/p>\n\n\n<p>Pensez \u00e9galement \u00e0 visiter des ressources externes, comme le <a href=\"https:\/\/docs.python.org\/3\/library\/sqlite3.html\" target=\"_blank\" rel=\"noopener\">documentation officielle de Python pour sqlite3<\/a>, la <a href=\"https:\/\/www.sqlitetutorial.net\/sqlite-python\/\" target=\"_blank\" rel=\"noopener\">tutorial SQLite pour Python<\/a>, et le guide de <a href=\"https:\/\/realpython.com\/python-sql-libraries\/#sqlite\" target=\"_blank\" rel=\"noopener\">Real Python sur les biblioth\u00e8ques SQL en Python<\/a> pour approfondir encore plus votre compr\u00e9hension.<\/p>\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\u00ab\u00a0`","protected":false},"excerpt":{"rendered":"<p>\u00ab\u00a0`html Lire des Donn\u00e9es depuis SQLite en Python est une comp\u00e9tence essentielle pour tout d\u00e9veloppeur travaillant avec des bases de donn\u00e9es. Que vous soyez d\u00e9butant&#8230;<\/p>\n","protected":false},"author":4,"featured_media":2935,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[18],"class_list":["post-5863","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\/5863","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=5863"}],"version-history":[{"count":1,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5863\/revisions"}],"predecessor-version":[{"id":5864,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5863\/revisions\/5864"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media\/2935"}],"wp:attachment":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media?parent=5863"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/categories?post=5863"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/tags?post=5863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}