Django生成条形码并通过浏览器下载
Django generate bar code and download via browser
我可以使用这个库生成条形码并将图像文件保存在根文件夹中 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")
这里图片文件是保存在根目录下的,不是通过浏览器下载的。
我找不到解决这个问题的方法,请您给我建议一些解决方法来解决这个问题,我将不胜感激。提前致谢。
你可以这样做
response = HttpResponse(mimetype="image/png")
image.save(response, "PNG")
return response
响应是类似于文件的流,因此您可以写入它而不是将其保存到文件。
此外,我认为您可以跳过 ean.save('filename')
,但我不能 100% 确定,因为我从未使用过该库。
你可以试试:
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
我可以使用这个库生成条形码并将图像文件保存在根文件夹中 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")
这里图片文件是保存在根目录下的,不是通过浏览器下载的。 我找不到解决这个问题的方法,请您给我建议一些解决方法来解决这个问题,我将不胜感激。提前致谢。
你可以这样做
response = HttpResponse(mimetype="image/png")
image.save(response, "PNG")
return response
响应是类似于文件的流,因此您可以写入它而不是将其保存到文件。
此外,我认为您可以跳过 ean.save('filename')
,但我不能 100% 确定,因为我从未使用过该库。
你可以试试:
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