从Django中的自定义模板标签访问与FileStorage一起存储的图像

时间:2019-05-01 17:53:56

标签: python django file-storage

我已使用Django的FileStorage存储图像,并且已将该图像的URL从模板发送到自定义templatetag。但是我无法通过该URL访问图像。

我也尝试访问媒体目录以获取上载的图像,但是出现以下错误: IsADirectoryError位于/

[Errno 21]是目录:“ media /”

views.py

def index(request):
    context = {}
    if request.method == "POST":

        up_image = request.FILES['image']
        fs = FileSystemStorage()
        name = fs.save(up_image.name,up_image)
        context['url'] = fs.url(name)

    return render(request,"ind.html",context)

settings.py

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/' 

template ind.html

{% load testing %}
    <p>{% fname url %}</p>

自定义templatetag testing.py

from django import template
import webbrowser
from PIL import Image


register = template.Library()

@register.simple_tag


def fname(url):
    x = url[7:] #getting only the name of the file uploaded
    path = 'media/'+x


    with Image.open(path) as image:
        width, height = image.size
    return width

我还尝试使用自己传递的网址打开图片,但无法正常工作。

我只是尝试访问上传的图像,因此可以对其进行一些进一步的处理,但是现在,我只是返回图像的宽度以检查其是否正常工作

0 个答案:

没有答案