2010-07-22 17 views

Odpowiedz

8

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

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

jeśli trzeba wrócić bin dane w aplikacji internetowej - return cStringIO.StringIO(file['bin'])

+1

dzięki za uwagę aplikacji internetowej. –

1

Nie jestem pewien, czy pysqlite jest taki sam jak sqlite3, który jest obecnie domyślnie w standardowej bibliotece pythona. Ale jeśli używasz sqlite3, możesz zapisać obraz w pliku bufferobject i zapisać go w polu blob w sqlite. Należy pamiętać o następujących choć:

  • przechowywania obrazów w bazie danych jest mile widziana przez niektórych, przechowywanie plików i ścieżki w bazie danych jest inna możliwość.
  • upewnij się, że zwróci odpowiedni typ MIME
0

To nigdy nie jest dobry pomysł, aby nagrać w surowych rodzajów baz danych. Nie możesz po prostu zapisać pliku w systemie plików i zapisać ścieżki do niego w bazie danych?

+0

muszę zapisać go do bazy danych. To będzie mały obraz. –

3

Czy masz masz do przechowywania obrazu w bazie? Zapisałbym obraz do systemu plików i zapisałbym jego ścieżkę w DB. (Możesz nie być w stanie tego zrobić, w zależności od konkretnego przypadku.)

Jeśli koniecznie musisz, spójrz na here.

+0

nie sam wpis, ale drugi komentarz rozwiązał mój problem. Dzięki. –

Powiązane problemy