Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaçage autre langage Python Discussion :

Interface faite en python/tkinter pour afficher le contenu d'une BDD sous SQLite


Sujet :

Interfaçage autre langage Python

  1. #1
    Candidat au Club
    Interface faite en python/tkinter pour afficher le contenu d'une BDD sous SQLite
    Bonjour.

    J'essaye de dessiner les contours d'un petit projet d'interface graphique qui permet d'afficher les données contenues dans une base de données locale. Avant de me lancer dans le dur je souhaite lever un certain nombre de verrous.

    Plus précisément je souhaiterai afficher des données simple (texte, grandeurs, photos, éventuellement des vidéos à terme) mais aussi des courbes comme la vitesse en fonction du temps par exemple.

    J'ai plusieurs questions à ce sujet mais ma première concerne la sauvegarde des données des courbes. Sous quel format dois-je sauvegarder les données d'une courbe (donc deux listes: 'temps' et 'vitesse') dans ma base sqlite de telle sorte que mon interface codée en python puisse aller lire et afficher les données en direct ? Est ce que je peux enregistrer ces données directement dans ma base sous formes de listes python ?

    Merci.

  2. #2
    Expert éminent sénior
    Salut,

    Citation Envoyé par Matlanoob2 Voir le message
    Est ce que je peux enregistrer ces données directement dans ma base sous formes de listes python ?
    Vous ne pouvez enregistrer dans la base que des types de données supportés par la base de données. Et pour des objets Python, en faire des chaînes de caractères avec json ou pickle.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre éclairé
    Bonjour,

    Il ne me semble que Sqlite3 ne gère pas les listes, le plus simple est de convertir en une chaîne de caractère (ça peut être le format json, ou bien un tout autre format, par exemple séparer les valeurs par des virgules, des points virgules, ect...)
    Pour ce qui est des images et photos/vidéo le mieux à mon sens est de sauvegarder que le chemins des photos/vidéos et de les mettres dans un dossier quelques part.

  4. #4
    Expert éminent
    Bonjour,

    sqlite3 supporte les types de données suivants: TEXT, INTEGER, REAL, BLOB et NULL (noms de type à utiliser dans les requêtes SQL). Convertis par le module sqlite3 de Python, cela donne les types Python: str, int, float et bytes.

    Les éventuelles données binaires (images, vidéos, musiques, programmes binaires, etc...) sont donc:
    - présentées en bytes et enregistrées dans sqlite3 sous le type "BLOB",
    - lues comme type bytes à partir d'un champ de type BLOB de sqlite3

    A titre d'exemple: il est facile de stocker des images jpg de cette façon.

    Donc, on peut stocker n'importe quelle donnée Python autre que str, int, float, à condition de pouvoir la présenter comme type "bytes" de Python dans un champ de type "BLOB" de sqlite3.

    Je n'ai pas essayé, mais pour des courbes connues point par point, des opérations de sérialisation d'objets Python, appliquées à des listes devrait le permettre. A voir avec les modules: pickle, marshal, shelve, ...
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

###raw>template_hook.ano_emploi###