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")