【发布时间】:2020-09-22 12:38:12
【问题描述】:
我有一个简单的 model,我想将 PDF 文件的二进制内容存储在 data 属性中:
from app import db
class Model(db.Model):
id = db.Column(db.Integer, primary_key=True)
data = db.Column(db.PickleType, nullable=True)
我正在尝试将一些任意 PDF 文件添加到 data 属性,如下所示:
@app.route('/')
def index() -> str:
model = Model.query.get(1)
model.data = open('./app/static/pdf/file.pdf', 'rb')
db.session.commit()
return ''
但我收到以下错误:
sqlalchemy.exc.StatementError: (builtins.TypeError) cannot serialize '_io.BufferedReader' object
[SQL: UPDATE model SET data=? WHERE model.id = ?]
[parameters: [{'data': <_io.BufferedReader name='./app/static/pdf/file.pdf'>, 'model_id': 1}]]
请问这样做的正确方法是什么?我应该如何序列化 PDF 文件?
感谢您的帮助:-)
【问题讨论】:
标签: python pdf flask sqlalchemy