Django генерация штрих-кода и загрузка через браузер - PullRequest
1 голос
/ 04 марта 2020

Я могу сгенерировать штрих-код и сохранить файл изображения в папке root, используя эту библиотеку python -barcode . Теперь я пытаюсь сгенерировать изображение штрих-кода и загрузить его через браузер как HttpResponse

. Вот мои попытки,

import barcode

from django.http import HttpResponse

def download_bar_code(request):
    ean = barcode.get('upc', '123456789102', writer=ImageWriter())
    ean.save('filename')
    image = ean.render() # Returns PIL image class
    # <PIL.Image.Image image mode=RGB size=523x280 at 0x7FAE2B471320>
    return HttpResponse(image, content_type="image/png")

. Здесь файл изображения сохраняется в папке root, но не загружается через браузер. Я не могу найти решение для этого, прошу вас предложить мне какое-то решение, чтобы решить эту проблему, я был бы очень признателен. Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 04 марта 2020

Вы можете сделать что-то вроде

response = HttpResponse(mimetype="image/png")
image.save(response, "PNG")
return response

Ответ - это поток, похожий на файл, поэтому вы можете записать его вместо сохранения в файл.

Кроме того, я думаю, Вы можете пропустить ean.save('filename'), но я не уверен на 100%, так как никогда не использовал эту библиотеку.

1 голос
/ 04 марта 2020

Вы можете попробовать:

from django.http import HttpResponse

def home(req):
    response = HttpResponse(image, content_type="image/png")
    response['Content-Disposition'] = 'inline; filename=file_name.png'
    return response
...