8
votes

Pysqlite - Comment enregistrer des images

Je dois enregistrer un fichier image dans la base de données SQLite à Python. Je n'ai pas pu trouver une solution. Comment puis-je le faire?

Merci d'avance.


0 commentaires

4 Réponses :


2
votes

Je ne sais pas si PYSQLite est identique à SQLite3, qui est actuellement par défaut dans la bibliothèque Python standard. Mais si vous utilisez SQLITE3, vous pouvez stocker l'image dans un tampon Object et stocker cela dans un champ blob dans SQLite. Soyez conscient de ce qui suit:

  • Stockage des images dans une base de données est froncée par certains, stocker des fichiers et un chemin dans la base de données est l'autre possibilité.
  • Assurez-vous de retourner le type MIME approprié

0 commentaires

0
votes

Ce n'est jamais une bonne idée d'enregistrer des types bruts dans des bases de données. Ne pouviez-vous pas simplement enregistrer le fichier sur le système de fichiers et enregistrer le chemin d'accès dans la base de données?


1 commentaires

J'ai besoin de l'enregistrer dans la base de données. Ce sera une petite image.



3
votes

avez-vous pour stocker l'image dans la base de données? J'écrirais l'image sur le système de fichiers et stockerais son chemin dans la DB. (Vous ne pourrez peut-être pas faire cela, en fonction de votre cas particulier.)

Si vous devez absolument, lookez ici .


1 commentaires

Pas le poste lui-même mais le deuxième commentaire a résolu mon problème. Merci.



11
votes

écrire - cursor.execute ('insert dans le fichier (ID, nom, bin) Valeurs (?,?,?) '', (ID, nom, nom, sqlite3.binary (fichier.read ())))

Lire - fichier = cursor.execute ("Sélectionnez la corbeille dans laquelle ID =? ', (ID,))). Fetchone ()

Si vous devez retourner des données bin dans Web App - renvoyer cstringio.stringio (fichier ['bin'])


0 commentaires