Я хочу ответить на изображения с Django - PullRequest
1 голос
/ 13 января 2020

Я хочу Django для отображения изображения при доступе. Например, я хочу отображать только изображение в качестве ответа, например, при доступе к изображению ниже. И я хочу сделать URL-адрес обычным, не используя .jpeg или .png.

Пример:

sample

Но теперь, независимо от того, какой метод вы попробуйте, это не работает.

from django.http import HttpResponse
import os
from django.core.files import File
import codecs


def image(request):
    file_name = os.path.join(
        os.path.dirname(__file__),
        '12.jpg'
    )
    try:
        with open(file_name, "rb") as f:
            a = f.read()
            return HttpResponse(a, content_type="image/jpeg")
    except IOError:
        red = Image.new('RGBA', (1, 1), (255, 0, 0, 0))
        response = HttpResponse(content_type="image/jpeg")
        red.save(response, "JPEG")
        return response




urlpatterns = [
    url('image', image)
]

При использовании приведенного выше кода возникает следующая ошибка.

'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

Ответы [ 2 ]

1 голос
/ 13 января 2020

Просто используйте FileResponse:

from django.http import FileResponse

def image(response):
    img = open('path/to/12.jpg', 'rb')
    response = FileResponse(img)
    return response
0 голосов
/ 14 января 2020

Причиной была моя собственная промежуточная программа. Там не было никаких проблем, если я закомментировал. Спасибо тем, у кого есть комментарии и тем, кто ответил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...