1
我想從我的硬盤存儲和讀取文件(例如myfile.dat
)到使用Python3訪問SQLAlchemy的sqlite3數據庫中。在Python3中使用SQLAlchemy存儲和讀取sqlite3數據庫中的文件
我想爲Person-table的每一行存儲一張圖片。我只想在顯示該人的數據時在GUI中顯示該圖片。
我想從我的硬盤存儲和讀取文件(例如myfile.dat
)到使用Python3訪問SQLAlchemy的sqlite3數據庫中。在Python3中使用SQLAlchemy存儲和讀取sqlite3數據庫中的文件
我想爲Person-table的每一行存儲一張圖片。我只想在顯示該人的數據時在GUI中顯示該圖片。
只需從硬盤中以二進制模式讀取文件並將其作爲BLOB存儲到數據庫。從數據庫
with open('image.png', 'rb') as f:
fcontent = f.read()
獲取BLOB(如image
),並將其饋送到一個Python的字節流。 然後,您可以使用它作爲wxPython中的Stream-Object。
# read the BLOB as 'image' from database
# and use it
stream = io.BytesIO(image)
image = wx.Image(stream)
bitmap = wx.Bitmap(image)
你能說說爲什麼嗎?通常文件是分開存儲的,因爲SQLite沒有爲此目的進行優化。 –
@MikkoOhtamaa請參閱最新的問題文本。我不知道應該有哪些優化。一個文件是數據。數據庫用於存儲數據。我沒有看到問題。 – buhtz
大多數Python框架(Django)都這樣做,以便他們將文件存儲在磁盤上。每個文件都有隨機的ID。在數據庫中,它們只存儲對此文件的引用:隨機文件ID和可能的原始文件名。 –