Flask-SQLAlchemy:照片列类型

时间:2011-11-24 16:21:23

标签: python sqlalchemy flask flask-sqlalchemy

在我使用Flask / SQLAlchemy进行编码的Web应用程序中,我的几个模型需要一个“Photo”列类型,它可以处理将原始图像存储在文件系统的某个位置,并创建图像的不同缩略图大小。理想情况下,我想要像:

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对象上添加setter / getter,以便我可以使用提到的语法访问URIS / URLS? 顺便说一句,如果有人在SQLAlchemy的用户定义类型上有一个很好的教程/资源(官方文档除外),我将不胜感激,如果他能分享它。

THX。

2 个答案:

答案 0 :(得分:2)

你看过Flask-Upload了吗? 这似乎正是你所寻找的。

答案 1 :(得分:1)

这不是一个答案,但我认为使用下面描述的结构图像缩略图更方便:

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

使用标签创建缩略图,您只需要在数据库中存储原始图像路径。