Flask-SQLAlchemy: Тип столбца фото

В веб-приложении, которое я кодирую с помощью Flask/SQLAlchemy, некоторым из моих моделей требуется тип столбца «Фото», который будет обрабатывать сохранение исходного изображения где-то в файловой системе и создавать различные размеры эскизов изображения. В идеале я бы хотел что-то вроде:

class MyModel(Base):
    id        = Column(Integer, primary_key=True)
    photo     = Column(Photo(root="/path/to/photos/", formats={
        "big"      : "800x600",
        "small"    : "400x300",
        "thumbnail": "100x75"
    }))

а затем я мог бы получить доступ к URI/URL файла следующим образом: model.photo.big и т. д.

Итак, мой вопрос: как добавить сеттеры/геттеры к объекту model.photo, чтобы я мог получить доступ к URIS/URLS с указанным синтаксисом? Кстати, если у кого-то есть хороший учебник/ресурс (кроме официального документа) по пользовательским типам с SQLAlchemy, я был бы признателен, если бы он мог им поделиться.

Спасибо.


person arnaud briche    schedule 24.11.2011    source источник


Ответы (2)


Вы смотрели Flask-Upload? Кажется, это именно то, что вы искали.

person iurii    schedule 02.07.2014

Это не ответ, но я думаю, что для миниатюр изображений удобнее использовать структуру, подобную описанной в ссылке ниже:

http://flask.pocoo.org/mailinglist/archive/2011/1/26/pil-to-create-thumbnails-automatically-using-tag/#32aff91e05ba9985a49a76a4fb5338d7

Используя тег для создания эскизов, вам нужно хранить только исходный путь к изображению в БД.

person Ahmet Recep Navruz    schedule 25.11.2011
comment
Наконец, я закончил кодировать поле изображения, как описано выше. Однако подход к тегам интересен. - person arnaud briche; 26.11.2011