我尝试通过sqlalchemy将客户端上传的二进制文件存储到postgresql中。通过对错误信息进行一些谷歌搜索,我找到了这个源文件:“包装对象不是字节或缓冲区,这是一个错误”。
binaries = []
for f in request.files.values():
if f and allowed_file(f.filename):
fn = secure_filename(f.filename)
file_path = os.path.join(basedir, fn)
f.save(file_path)
#data = f.read()
data = open(fn, 'rb').read()
binaries.append(psycopg2.Binary(data))
f.close()
#does the escaping
mytable=mytable(
...,
document1 = binaries[0]
...
)
#Model
class mytable(mydb.Model):
document1 = mydb.Column(mydb.LargeBinary())