Обработка двоичных данных с помощью зефира (JSON) + SQLAlchemy - PullRequest
0 голосов
/ 16 октября 2018

Архитектура:

vue.js (внешний интерфейс) <-> {JSON} <-> Колба (внутренний) <-> {зефир} <-> {SQLAlchemy} <->Postgres (дБ)

Описание:

Я реализую способ запроса записей (несколько атрибутов, включая двоичные изображения) из базы данных для визуализации 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: Пожалуйста, не обращайте внимания на 'Why-storing-images-in-db', а не на фокус здесь.

...