django - 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")
此处图像文件保存在根文件夹中,但不通过浏览器下载。我无法找到解决方案,我请求您建议我一些解决方案来解决这个问题,非常感谢我。提前致谢。
解决方案
你可以做类似的事情
response = HttpResponse(mimetype="image/png")
image.save(response, "PNG")
return response
响应是类似于文件的流,因此您可以写入该流而不是将其保存到文件中。
另外,我认为你可以跳过ean.save('filename')
,但我不能 100% 确定,因为我从未使用过那个库。
推荐阅读
- c - 如何使用 cmake 和 find_package 在 macOS 上链接到 FreeGlut 而不是 Glut?
- swiftui - SwiftUI 测量视图的高度
- html - 如何在底部带有标题的图像旁边放置文本
- python - OpenCV:同时从多个边界检测文本
- android - 如何在房间中使用@Relation
- javascript - 将计数器限制在 0 到 10 之间
- python - python beautifulsoup4 TypeError:“NoneType”对象不可调用
- kubernetes - 在 EKS 集群中创建 NodePort 服务时出错
- laravel - count():参数必须是一个数组或者是实现了 Countable on Laravel 关系的对象
- bash - “sed”与模式不匹配