Это мой проект для колледжа, я создал веб-приложение, которое генерирует некоторые значения и результаты диаграмм. Теперь я хочу загрузить этот результат в формате pdf. Я пытаюсь использовать приведенный ниже код, но этот код создает pdf, но показывает пустые значения таблиц без диаграмм. , данные контекста не получают.
я попробовал код ниже. Пожалуйста, дайте мне предложение. Спасибо заранее.
def upload1(request):
form = ReadFileForm()
if request.method == 'POST':
form = ReadFileForm(request.POST, request.FILES)
if form.is_valid():
file = request.FILES['file']
ascii_data = np.loadtxt(file)
data_m_sec = ascii_data
data = {}
data["RR"] = np.array(data_m_sec)
data["BeatTime"] = np.cumsum(data["RR"]) / 1000.0
data["niHR"] = 60.0 / (data["RR"] / 1000.0)
info = {}
info["beats"] = "{0:.2f}".format((len(data["BeatTime"])))
info["minhr"] = "{0:.2f}".format(min(data["niHR"]))
info["maxhr"] = "{0:.2f}".format(max(data["niHR"]))
info["meanhr"] = "{0:.2f} bps".format(np.mean(data["niHR"]))
info["meanrr"] = "{0:.2f} msec.".format(np.mean(data["RR"]))
# for RR Histogram
fig1 = plt.figure(1)
axes = fig1.add_subplot(1, 1, 1)
axes.hist(data["RR"], 30, density=1, facecolor="red")
axes.set_xlabel("RR (msec.)")
axes.set_ylabel("Probability")
axes.set_title("RR histogram")
axes.grid(True)
img_in_memory = BytesIO()
plt.savefig(img_in_memory, format="png")
img_in_memory.seek(0)
image1 = base64.b64encode(img_in_memory.getvalue())
image1 = image1.decode('utf8')
plt.close(fig1)
context = {
"image1": image1,
"beats": info["beats"],
"meanhr": info["meanhr"],
"meanrr": info["meanrr"],
"minhr": info["minhr"],
"maxhr": info["maxhr"],
}
return render(request, "upload/base.html", context)
return render(request, "upload/upload.html", {"form": form})
def generate_pdf(request):
report = upload1(request)
template_path = 'upload/base.html'
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="Report.pdf"'
html = render_to_string(template_path, {'report': report})
print (html)
pisaStatus = pisa.CreatePDF(html, dest=response)
return response