Django Считайте png изображение из URL, затем передайте его HttpResponse

Я хочу, чтобы прочитать изображение PNG из частного URL, а затем записать его в HttpResponse. У меня есть это представление, которое получит слой из geoServer как изображение в формате png, затем откроет его и прочитает его, а затем вернет его как HttpResponse:

def get_layer(request):
   #this url will return png image
   url='https://example.com/geoserver/layer/wms?.......' 
   r = requests.get(url)
   with open(r, "rb") as fp:
       img = Image.open(fp)
   return HttpResponse(img)

Я получаю ошибку:

Exception Type: TypeError
Exception Value: invalid file: Response [200]

/main/views.py in test1
    with open(r, "rb") as fp: ...
▼ Local vars
Variable    Value
r           <Response [200]>
request     <WSGIRequest: GET '/test/'>
url         'https://example.com/geoserver/layer/wms?.......'

Все, что я хочу, - это получить png-файл из URL, а затем передать его HttpResponse, чтобы при вызове моего просмотра он / она получал изображение только с моим путем Django. Я не хочу сохранять изображение локально, я просто хочу присвоить его переменной и передать его. Я использую: Django 1.11, python3.5.

1 ответ

Решение

Это работает?

def get_layer(request):
   #this url will return png image
   url='https://example.com/geoserver/layer/wms?.......' 
   r = requests.get(url)
   return HttpResponse(r.content, content_type="image/png")
Другие вопросы по тегам