使用棉花糖(JSON)+ SQLAlchemy

时间:2018-10-16 13:17:36

标签: python json flask sqlalchemy marshmallow

架构:

vue.js(前端)<-> {JSON} <->烧瓶(后端)<-> {棉花糖} <-> {SQLAlchemy} <-> Postgres(db)

说明:

我正在实现从数据库查询记录(多个属性,其中包括二进制图像)以获取vue.js渲染的方法。我选择以二进制格式存储图像(没有base64)。

当我想将JSON作为前端通信的标准方式时,需要将二进制图像与数据库记录中的其他基于文本的属性值一起转换为base64。

问题:

通常,代码如下。 获取的记录中的二进制内容破坏了序列化。是否可以在base64之间截取所获取的二进制数据,从而形成有效的JSON?

在考虑将数据库中的图像存储为base64之前,我只是想探讨这种可能性。有点-吃蛋糕,也吃。

如何处理?

# SQLA - lookup in DB
session = Session()
recsList = session.query(Entity).all()

# marshmallow - JSON serialize
entity_schema = EntitySchema()
respJsonObj = entity_schema.dump(recsList) # <- JSON serialization breaks for binary images 
respJson = jsonify(respJsonObj)

session.close()

信息:对于包含图像的相同记录的创建,我使用了multipart/form-data,而不会出现JSON问题。

PS:请忽略“为什么在数据库中存储图像”,而不是此处的重点。

0 个答案:

没有答案