Python 输出文件与Flask一起存储在VARBINARY列中
我有一个Flask前端项目,我使用Flask sqlalchemy和pymssql数据库。 现有的.net工具可以将文件保存到sql server db中的Python 输出文件与Flask一起存储在VARBINARY列中,python,flask,flask-sqlalchemy,pymssql,Python,Flask,Flask Sqlalchemy,Pymssql,我有一个Flask前端项目,我使用Flask sqlalchemy和pymssql数据库。 现有的.net工具可以将文件保存到sql server db中的varbinary(max)列中,它也可以很好地下载文件。 现在我需要flask视图从varbinary(max)列输出这些文件 我目前有以下代码 // in model content = db.Column(VARBINARY()) // in view query = models.File.query f = query.fi
varbinary(max)
列中,它也可以很好地下载文件。
现在我需要flask视图从varbinary(max)
列输出这些文件
我目前有以下代码
// in model
content = db.Column(VARBINARY())
// in view
query = models.File.query
f = query.filter(models.File.request_id == request_id).first_or_404()
response = Response(f.content, content_type='application/pdf')
response.headers["Content-Disposition"] = "attachment;filename={0}".format(file_name)
return response
文件大多是pdf,示例pdf工作正常,但普通pdf文件已损坏,我知道它们在db中是正常的,因为.net客户端可以下载它们
那么,如何调整f.content
编码,以便用户能够打开提到的PDF
有趣的是,类型(f.content)返回'str',所以我相信flask sqlalchemy会在内部将字节数组转换为字符串。好的,我知道了 我的代码是正确的,它以正确的格式输出文件 问题在于freedts驱动程序,它在freedts.conf中有64512字节的限制
text size = 64512
将其更改为更理智的方式可以修复错误。是因为您如何使用Flask,还是因为您如何使用SQLAlchemy?您是否尝试过制作一个脚本,只使用SQLAlchemy保存然后从数据库中检索PDF?这可能有助于限制问题的实质。@MarkHildreth我将讨论更多细节。我正在用
.net
保存文件,只想用flask sqlalchemy输出它。