[Django] request.FILESに格納された画像をHTMLに出力する

Django で request.FILES に格納されたファイル画像をHTMLに出力するのにハマったのでメモ。

request.FILES に ‘hoge’ というファイルが格納されているとする。この場合、Python とHTMLのコードはそれぞれ以下のようになる。

views.py

 def render_index(request):
     file_name = 'hoge'
     context = {
     'cached_file':{}
     }
     the_file = request.FILES[file_name]
     the_file.seek(0)
     data = the_file.read()
     encoded = b64encode(data).decode()
     mime = header_icon_file.content_type
     mime = mime + ";" if mime else ";"
     cached = {'src': "data:%sbase64,%s" % (mime, encoded)}
     context['cached_file'][file_name] = cached
     the_file.seek(0)
     return render(request,'index.html',context)

template.html

<img src="{{cached_file.hoge.src}}">

Related Contents

Pickup Contents