我想要一个视图来返回图像数据。
之类的东西return HttpResponse(image_data, mimetype=”image/png”)
我知道我可以用file.read()
来获取图像数据,但由于图像很小(如1x1像素),我想将其存储为字符串对象(或者我可以复制和粘贴的任何对象)在我的代码中)。这样,每次查看视图时,我都会自行保存磁盘查找。
我该如何解决这个问题?我确信这很容易,我只是不确定用于搜索的条款。
P.S。我知道用Django通常不会以这种方式提供图像。
答案 0 :(得分:12)
def logo(request):
return HttpResponse(
OPENID_LOGO_BASE_64.decode('base64'), content_type='image/gif'
)
# Logo from http://openid.net/login-bg.gif
# Embedded here for convenience; you should serve this as a static file
OPENID_LOGO_BASE_64 = """
R0lGODlhEAAQAMQAAO3t7eHh4srKyvz8/P5pDP9rENLS0v/28P/17tXV1dHEvPDw8M3Nzfn5+d3d
3f5jA97Syvnv6MfLzcfHx/1mCPx4Kc/S1Pf189C+tP+xgv/k1N3OxfHy9NLV1/39/f///yH5BAAA
AAAALAAAAAAQABAAAAVq4CeOZGme6KhlSDoexdO6H0IUR+otwUYRkMDCUwIYJhLFTyGZJACAwQcg
EAQ4kVuEE2AIGAOPQQAQwXCfS8KQGAwMjIYIUSi03B7iJ+AcnmclHg4TAh0QDzIpCw4WGBUZeikD
Fzk0lpcjIQA7
"""
答案 1 :(得分:1)
您可以考虑使用base64。但是您可能会发现性能提升几乎无关紧要,因为您的映像将存储在磁盘缓存中。我有兴趣看看base64解码与磁盘访问的基准。您甚至可能会发现此优化会产生相反的效果。
编辑:我发现这个page on the linux disk cache,您在做出这个决定时可能会感兴趣。只要你的磁盘活动不是太高,这个微小的图像很可能成为磁盘缓存的一部分。