Внедрение сгенерированного изображения сюжета в шаблон Django - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь встроить изображение, сгенерированное графиком seaborn, в HTML-шаблон Django. Когда я пытаюсь сохранить, правильное изображение сохраняется в моем каталоге. Но мое требование заключается в потоковой передаче этого изображения в HTML-страницу / шаблон без сохранения в каталоге. Но вместо этого я получаю пустое белое изображение на странице.

def main():

    .........
    .........

    fig = sb.pairplot(kpi)    
    tmpfile = BytesIO()
    fig.savefig(tmpfile, format='png')
    encoded = base64.b64encode(tmpfile.getvalue())    
    return encoded

view.py:

def drop_down(request):
    distribution = main()
    if request.method == 'POST':
        form = ExpenseForm(request.POST)
        print(form.errors)
        if form.is_valid():
            print(form.errors)
            descriptive_stat_var = form.cleaned_data['Variable Names']
            if descriptive_stat_var != '':
                kk = hello(descriptive_stat_var)
                print(kk)
                return render(request, 'core/drop_down.html', {
                    'expense_form': form,
                    'kk': kk.to_html(),
                    'distribution': distribution
                })
            else:
                return render(request, 'core/drop_down.html', {
                    'expense_form': form
                })
    else:
        form = ExpenseForm()
    return render(request, 'core/drop_down.html', {
        'expense_form': form
    })

HTML-файл:

<img src='data:image/png;base64,{{distribution}}'/>

1 Ответ

0 голосов
/ 31 октября 2019

Я добавил ключ распределения ко всем другим частям, как показано ниже, в конечном итоге обрабатывая визуализацию для всех случаев, а также метод GET и вуаля! Изображение появилось:

return render(request, 'core/drop_down.html', {
                'expense_form': form,
                'distribution': distribution
            })    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...