2010-07-22 177 views

Respuesta

8

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

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

si tiene que devolver los datos de basura en la aplicación web - return cStringIO.StringIO(file['bin'])

+1

gracias por la nota de la aplicación web. –

1

No estoy seguro de si pysqlite es lo mismo que sqlite3, que actualmente está predeterminado en la biblioteca de python estándar. Pero si usa sqlite3 puede almacenar la imagen en bufferobject y almacenarla en un campo blob en sqlite. ser consciente de la siguiente embargo:

  • almacenamiento de imágenes en una base de datos es mal visto por algunos, el almacenamiento de archivos y la ruta en la base de datos es la otra posibilidad.
  • asegurarse de que devuelva el tipo MIME adecuado
0

Nunca es una buena idea para registrar tipos primas en bases de datos. ¿No podría simplemente guardar el archivo en el sistema de archivos y registrar la ruta en la base de datos?

+0

tengo que guardarlo en la base de datos. Será una imagen pequeña. –

3

¿Tiene tiene para almacenar la imagen en la base de datos? Escribiría la imagen en el sistema de archivos y almacenaría su ruta en el DB. (Es posible que no pueda hacer esto, dependiendo de su caso particular.)

Si es absolutamente necesario, consulte here.

+0

no la publicación en sí, pero el segundo comentario resolvió mi problema. Gracias. –

Cuestiones relacionadas