Bonjour,
comment utiliser sqlite3,
j'ai bien lu https://docs.python.org/2/library/sqlite3.html mais ce n'est pas une utilisation classique de fichier python.
je cherche simplement à lire et afficher le contenu de ce type de fichier.
merci
Bonjour,
comment utiliser sqlite3,
j'ai bien lu https://docs.python.org/2/library/sqlite3.html mais ce n'est pas une utilisation classique de fichier python.
je cherche simplement à lire et afficher le contenu de ce type de fichier.
merci
Salut,
Comme l'a fait remarquer Vinss, un fichier sqlite3 n'est pas un fichier Python. Il s'agit d'une Base de donnée sous la forme d'un simple et unique fichier, à l'extension que tu désires. Pour l'interroger, il faut utiliser le langage SQL, avec toutefois quelques spécificitées propre à SQLite. Toutes ces infos sont dans la page que tu cites.
Pour le reste, la première chose à faire est de déclarer ta base auprès de python, puis tu créé un curseur, un sorte de tampon. Lorsque tu interrogera ta BDD, le resultat sera stocké dedans. Il ne te restera plus qu'à récupéré le contenu de ce tampon.
Voici une explication plus complète avec exemple: LINK
Bonjour,
Pour moi c'est la compréhension des termes utilisés
si je veux réaliser une comparaison d'après ce que je comprends, enfin j'essaie
en python on fait un open, read et ensuite on traite la lecture, fermeture du fichier
donc là :
ma_base = sqlite3.connect("BASE.sqlite") = open
mon_curseur = ma_base.cursor() = read
mon_curseur.execute("SELECT * FROM MA_TABLE) et là, la récupération des données pour un traitement
r = mon_curseur.fetchone()
mon_listing = r.keys()
cur.close() = fermeture de la base
La base d'après ce que je comprends est constituée d'une entête de colonne + données de chaque colonne
Merci ,si vous pouvez me donner un exemple concret, je n'ai jamais utilisé ce type de base car y a t-il un format standard ou prévoir un décodage.
merci
A+
Salut,
SQLite est un moteur de base de données de type fichier, c.à.d que les déclarations, les index, les vues, les contraintes, les triggers, etc. et bien sûr les données d'une base sont enregistrés dans un fichier unique.
Pour autant, ce fichier n'est pas un fichier texte séquentiel de données, pour accéder à la base il faut le moteur SQLite qui va lire/écrire dans le fichier en passant des commandes SQL (ex. SELECT * FROM MaTable pour extraire les lignes de MaTable).
Si tu veux te lancer dans le fonctionnement de sqlite3, tu peux l'installer et commencer à créer et manipuler tes premières bases en ligne de commande.
Le module standard sqlite3 de Python ne fait que proposer une interface pour passer des commandes SQL au moteur SQLite à partir de Python.
Arduino, Raspberry Pi, ESP32, Infineon/Cypress PSoC, FPGA...
Arduino : Le forum, Le manuel de laboratoire, les Quiz, les cahiers pratiques, les sources et outils
Des capteurs connectés pour la maison avec Arduino et Raspberry Pi [Nouveau] Et en Zigbee ?
- FPGA : programmation d'un transmetteur UART en SystemVerilog [Nouveau]
- Apprendre à développer sur FPGA avec Intel Quartus Prime
- FPGA : programmer un contrôleur pour écran VGA
[Nouveau] Vous voulez soutenir le Club Developpez.com ? Abonnez-vous !
J'ai commencé par ce plugin et un jour je me suis rendu compte que lorsque je sélectionnais une ligne d'une table, cela m'ouvrait parfois un formulaire avec les données d'une autre ligneEnvoyé par deusyss
, très curieux mais surtout très dangereux
Suite à ça, j'utilise SQLiteStudio qui me semble pas mal et suffisant.
Arduino, Raspberry Pi, ESP32, Infineon/Cypress PSoC, FPGA...
Arduino : Le forum, Le manuel de laboratoire, les Quiz, les cahiers pratiques, les sources et outils
Des capteurs connectés pour la maison avec Arduino et Raspberry Pi [Nouveau] Et en Zigbee ?
- FPGA : programmation d'un transmetteur UART en SystemVerilog [Nouveau]
- Apprendre à développer sur FPGA avec Intel Quartus Prime
- FPGA : programmer un contrôleur pour écran VGA
[Nouveau] Vous voulez soutenir le Club Developpez.com ? Abonnez-vous !
Effectivement pas très securitaire, je n'ai jamais eu ce soucis personnellement, mais aucun logiciel n'étant parfait...
Je ne connaissais pas le logiciel que tu as évoqué, mais je l'essaierais à l'occasion, car ce que je reprochais au plugin c'est qu'il était dépendant de FF et en regle generale, je prefere que tout soit bien distinct pour eviter tout probleme.
Concernant SQLITE3, j'ajouterais que c'est la BDD qu'utilise Firefox, ainsi que la plupart des smartphones. Donc assez répandu.
Thierry_V, rapport à ton résumé, c'est bien ça.
Il faut voir (pour imagé uniquement hein), ta BDD comme une feuille calc. Le titre des colonnes (A, B, C, ...) correspondent... aux titres des colonnes. Les numero de lignes, correspondent à ce qu'on appelle un row_id. Chaque ligne, correspond à un enregistrement. Chaque row_id est unique et lié à un enregistrement spécifique.
Quand tu interroge ta base de donnée, ta requête permet de déterminer une liste de row_id, puis la BDD va chercher les enregistrements correspondant. Ensuiute, en foction des colonnes demandées, un tri est fait avant de t'afficher les résultats de la requête que tu peux alors visionner.
Salut,
Regardez la barre de menu de developpez.
Les bases de données (en abrégé SGDB) ont une place équivalente à la programmation.
C'est un vocabulaire (tables, index, clés, relations), un langage (SQL), des outils des cours, faqs et expertises spécifiques.
Si vous n'avez pas pris le temps de comprendre un peu de quoi çà parle, difficile d'automatiser des séquences d'instructions par programme ou de savoir si une question relève plutôt du monde de la programmation ou de celui du SGDB.
La documentation du module sqlite3 vous donne déjà des exemples concrets et les correspondances entre les types du SGDB et Python.Envoyé par Thierry_V
Mais si vous n'avez pas pris le temps de vous former aux SGDB, c'est un charabia incompréhensible.
- W
bonjour,
Humm vos explications m'informe plus que vous croyez, j'avais besoin d'une correspondance logique par rapport aux autres langage, même si j'avais à apparemment compris un principe de base.
Je vais réaliser des essais car l'explication de deusyss me donne l'image de principe du fonctionnement, ensuite à moi de voir.
merci à vous tous,
Thierry
Bonjour
ok. Et si ta base n'est pas trop grosse, tu peux alors la créer en mémoire avec ma_base = sqlite3.connect(":memory:"). Dans ce cas, il n'y aura aucune écriture disque (mais base perdue en fin de code).
Non. mon_curseur = ma_base.cursor() => création d'un tampon IO - cet élément n'existant pas dans la manipulation de fichiers, on ne peut pas établir de comparaison
Exact - Tout le résultat de ta requête se trouve dans le tampon IO
récupération de la première ligne du résultat (qui est alors effacé du tampon IO). Et r = mon_curseur.fetchall() => récupération de toutes les lignes du résultat
Faut que je vérifie mais je suis pas certain qu'une ligne "résultat" soit un dictionnaire Python. Je pense plutôt que c'est un simple tuple donc
- print r[0] => affiche l'info de la ligne située en première colonne
- print r[1] => affiche l'info de la ligne située en seconde colonne
- etc
Non, libération des ressources allouées au tampon - ma_base.close() = fermeture de la base
Non, ça c'est une table de la base. Et la base, elle, est constituée d'une ou plusieurs tables. Pour illustrer, on peut comparer la base avec un document Excel et une table c'est une feuille du document.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Bonjour tous,
Sve@r,
merci là, je dois arriver à mon but.
je vous tiens au courant.
Thierry
Très bon ajout Sve@r.
Thierry_V, si tu juge ton sujet terminé, n'oublié pas de passer le sujet à
Merci pour les autres utilisateurs.![]()
Bonjour,
dès que j'ai réussi le code, je le placerais pour les autres et mettrai le sujet résolu
merci
Prenez aussi le temps de lire le chapitre 18 du Swinnen, çà vous donnera peut être exemples, idées,....
- W
Partager