2010-07-22 28 views

risposta

8

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

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

se è necessario restituire i dati in bin web app - return cStringIO.StringIO(file['bin'])

+1

grazie per la nota dell'app web. –

1

Non sono sicuro che pysqlite sia uguale a sqlite3, che è attualmente predefinito nella libreria python standard. Ma se si utilizza sqlite3 è possibile memorizzare l'immagine in un bufferobject e memorizzarla in un campo blob in sqlite. Essere consapevoli di quanto segue però:

  • memorizzazione di immagini in un database è malvista da alcuni, la memorizzazione di file e il percorso del database è l'altra possibilità.
  • assicurarsi ritorni il corretto tipo MIME
0

Non è mai una buona idea di registrare i tipi prime nel database. Non potresti semplicemente salvare il file sul filesystem e registrare il percorso nel database?

+0

ho bisogno di salvare nel database. Sarà una piccola immagine. –

3

Hai per memorizzare l'immagine nel database? Scriverei l'immagine nel filesystem e memorizzerei il suo percorso nel DB. (Potrebbe non essere in grado di farlo, a seconda del caso specifico.)

Se assolutamente necessario, guardare here.

+0

non il post stesso ma il secondo commento ha risolto il mio problema. Grazie. –

Problemi correlati