Архитектура:
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', а не на фокус здесь.