PythonTip >> 博文 >> 基础与入门

Django-Dynamic-Media-Serve使用简介

zihua 2013-10-10 16:10:55 点击: 1466 | 收藏


那天Jason Lee兄介绍我介绍了django-dynamic-media-serve以后,还没来得及用。

今天状态好多了,可以研究技术了,所以下载并试用了它。一用就喜欢上了,真是个不可缺少的好东西。

项目地址是:http://code.google.com/p/django-dynamic-media-serve/,可下载的最新版本是0.36,trunk是0.4的,不过还没正式发布。

下载后直接放在PYTHONPATH能搜索到的目录,就可以用了,下载是使用方法。

 

 

 

我把它所在的目录命名为:dynamic_media_serve,然后把之前的serve相关的都换成它,如:

(r'^static/(?P<path>.*)$', 'dynamic_media_serve.serve',

{'document_root': MEDIA_ROOT}),

然后就可以开始用了,我在MEDIA_ROOT/upload下放一张名为gnome.png,以普通的方式去访问,输入:http://127.0.0.1:8000/static/upload/gnome.png

图片出来了,是默认的全尺寸

这时,如果我要获得一张高度是320的缩略图,只要在URL后面加上?height=320就OK啰!

同理,如果是要宽度是640的,只要?width=640就可以了。

当然!两者结合起来也可以!

这只是最基本的缩略图功能,其他还可以压缩(用gzip传输)、改善品质和flickr形式。其他可以参考该专案的Wiki。

现在开始不用手动切图就可以拥有各种尺寸的图片了,不仅可以减少空间占用(磁盘+数据库),而且它利用Django的缓存(从源码中看到默认启用了Cache),理应可以提升速度。虽然我没有测试过。

因为在第一次访问该缩略图时,Django首先载入默认图片,然后再生成缩略图,这时都保存在内存当中。当另一个用户访问时,就直接从内存获取就可以了:无论该用户访问的缩略图还是大图。

而如果手动切图,访问缩略图和大图就是一样的过程,默认情况下是不缓存的,除非你用Django的缓存系统。

原文链接:http://pythoner.org/wiki/14/

作者:zihua | 分类: 基础与入门 | 标签: 基础与入门 | 阅读: 1466 | 发布于: 2013-10-10 16时 |