首页 > 解决方案 > Django 生成条形码并通过浏览器下载

问题描述

我可以使用这个库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")

此处图像文件保存在根文件夹中,但不通过浏览器下载。我无法找到解决方案,我请求您建议我一些解决方案来解决这个问题,非常感谢我。提前致谢。

标签: djangodownloadbarcode

解决方案


你可以做类似的事情

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

响应是类似于文件的流,因此您可以写入该流而不是将其保存到文件中。

另外,我认为你可以跳过ean.save('filename'),但我不能 100% 确定,因为我从未使用过那个库。


推荐阅读