2010-07-22 5 views

Répondre

8

écrire - cursor.execute('insert into File (id, name, bin) values (?,?,?)', (id, name, sqlite3.Binary(file.read())))

lire - file = cursor.execute('select bin from File where id=?', (id,)).fetchone()

si vous devez renvoyer des données bin dans l'application web - return cStringIO.StringIO(file['bin'])

+1

merci pour la note de l'application web. –

1

Je ne suis pas sûr si pysqlite est le même que 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 bufferobject et la stocker dans un champ blob dans sqlite. Soyez conscient de ce qui suit si:

  • Enregistrement d'images dans une base de données est désapprouvée par certains, le stockage des fichiers et chemin d'accès dans la base de données est l'autre possibilité.
  • assurez-vous de retourner le type MIME correct
0

Il est jamais une bonne idée d'enregistrer les types premières dans les bases de données. Ne pourriez-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?

+0

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

3

Avez-vous avez pour stocker l'image dans la base de données? Je voudrais écrire l'image sur le système de fichiers et stocker son chemin dans la base de données. (Vous ne pouvez pas être en mesure de le faire, en fonction de votre cas particulier.)

Si vous devez absolument, regardez here.

+0

pas le message lui-même, mais le deuxième commentaire a résolu mon problème. Merci. –

Questions connexes