我怎么用软指甲?(詹戈)

2024-05-16 00:53:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在看sorl缩略图的文档,但仍然不知道如何: 一。上传图片到sorl缩略图。 2。选择性地显示来自sorl缩略图的图像。 (例如,从视图加载sorl缩略图中的特定图像并以自定义大小显示它,等等)

你能给出一些在django视图中如何使用这个库的具体例子吗?

提前谢谢:)


Tags: django文档图像视图图片例子sorl缩略图
3条回答

如果需要更大的灵活性,可以在视图中生成缩略图。以下是直接从sorl-thumbnail documentation开始的:

from sorl.thumbnail import get_thumbnail

im = get_thumbnail(my_file, '100x100', crop='center', quality=99)

那么im与从thumbnail模板标记中得到的结果是一样的。所以,可以将该变量添加到模板上下文中,或者只是其中的一部分。例如,如果您只是想要URL:

my_context = {
    'image_url': im.url,
}

当我不得不使用sorl缩略图时,我会在两种图像之间产生差异:

用ImageField调整对象

当我在Django中有一个带有ImageField的对象时,我使用如下缩略图来渲染它:

# Let's supose our object imagefield is called img
{% thumbnail obj.img "100" upscale=false as im %}
   <img src="{{ im.url }}"/>
{% empty %}  # In case the object doesn't have an image, use generic one
   {% thumbnail "img/empty_img.jpg" "236" upscale=false as im %}
        <img src="{{ im.url }}" />
   {% endthumbnail %}
{% endthumbnail %}  

按url/路径显示的图像

要使用项目的本地路径加载图像:

{% thumbnail "img/myImage.jpg" "236" upscale=false as im %}
    <img src="{{ im.url }}" />
{% endthumbnail %}

重要提示:请记住,缩略图会将媒体URL连接到您提供的路径,因此在这种情况下,您需要一个类似于yourapp/media/img/myImage.jpg的路径

使用URL加载图像很简单,示例如下:

{% thumbnail "http://www.nextgen-gallery.com/wp-content/uploads/2008/12/abend.jpg" "236" upscale=false as im %}
    <img src="{{ im.url }}" />
{% endthumbnail %}

可以使用缩略图模板标记使用sorl.thumbnail。下面是一个例子:

{% load thumbnail %}

{% thumbnail recipe.image "430x250" as thumb %}
     <img src="{{ thumb.url }}" width="{{ thumb.width }}" height="{{ thumb.height }}" alt="{{ recipe.title }}" />
{% endthumbnail %}

您不会将图像上载到sorl.thumbnail或从sorl.thumbnail加载图像。正确配置后,它将自动调整大小并存储图像,您可以使用thumbnail模板标记获取图像的正确URL。

相关问题 更多 >