使用memcached和sorl缩略图预热缓存

时间:2014-08-20 17:46:28

标签: python django caching memcached sorl-thumbnail

我刚接触缓存,而且我已开始使用sorl-thubmnailmemcached

我在模板中创建缩略图,如下所示

{% thumbnail song.artwork "185x185" crop="center" as im %}
    <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}

这样可以正常工作并创建缩略图。

我想要做的是事先为所有图像加热缓存。

以下是我尝试这样做的方式

for song in Song.objects.all():
    im = get_thumbnail(song.artwork, '185x185', crop='center', quality=99) 

这会在缓存文件夹中创建缩略图,但它们不会链接到图像。当我打开包含图像的页面时,它会重新创建另一个缩略图。如何使用low level API创建缩略图并将其链接到Song对象?

1 个答案:

答案 0 :(得分:0)

除了使用不同的选项外,您的代码应该有效。正如您可以在the documentation中读到的那样,sorl-thumbnail将几个选项放入作为缩略图文件名称的哈希中。在附加的代码中,低级代码中的额外质量选项将创建不同的哈希。因此它应该与:

一起使用
for song in Song.objects.all():
    im = get_thumbnail(song.artwork, '185x185', crop='center')