django: возвращает данные изображения из вида

Я хочу, чтобы представление возвращало данные изображения. так что что-то вроде

return HttpResponse(image_data, mimetype=”image/png”) 

Я знаю, что могу сделать file.read() чтобы получить данные изображения, но поскольку изображение мало (например, 1×1 px), я хочу просто сохранить его как строковый объект (или любой объект, который я могу скопировать и вставить в свой код ). Таким образом, я сохраняю поиск диска каждый раз при просмотре представления.

Как мне это сделать? Я уверен, что это легко, я просто не уверен, какие условия использовать для поиска.

ps Я знаю, что в Django обычно нет изображений таким образом.

Вот простой пример из проекта django-openid

 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 """ 

Вы можете использовать base64 . Но вы можете обнаружить, что повышение производительности почти не имеет значения, так как ваше изображение будет храниться в кеше диска. Мне было бы интересно увидеть тесты декодирования base64 и доступа к диску. Вы даже можете обнаружить, что эта оптимизация будет иметь обратный эффект.

Редактирование: я нашел эту страницу в кеше Linux-диска, который вам может показаться интересным при принятии этого решения. Пока активность вашего диска не слишком высока, вероятность того, что это крошечное изображение станет частью кеша диска, кажется вероятным.