我知道之前已经问过类似的问题,但我对django和js很新。我已经尝试了很多解决方案,但我无法理解许多解决方案并能够运行它们。所以我正在编写我的代码和我尝试过的解决方案。有人可以告诉我,我在做什么错误。
在我的views.py
中,我正在处理一个产生一些结果的文件。这些结果采用Dataframe(使用过的pandas)的形式。从这个数据帧我计算几个存储在变量tot,p,lp,us
中的整数值。我还得到了3个子数据帧:dfp,dflp,dfus
。我需要在网页上显示所有这些内容,以便将其发送到html:uploaded.html
,如下所示。
dict_1 = {'Path':p, 'LPath':lp, 'USig':us}
json1 = json.dumps(dict_1)
return render(request, 'uploaded.html', locals(), {'js_json1': json1, 'TotVar': tot})
上面的代码只是发送变量而不是数据帧,因为我不知道如何去做。我已通过以下方式在uploaded.html
处理了它:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Upload File-Hereditary Cancers</title>
<link rel="stylesheet" href="/static/css/style.css" type="text/css">
<script type="text/javascript">
function results()
{
var totalvariants = {{TotVar}};
document.getElementById("totvar").innerHTML = "Total number of variants are: "+totalvariants;
}
</script>
</head>
<body>
<div id="header">
<div>
<div class="logo">
<a href="index.html">Hereditary Cancers</a>
</div>
<ul id="navigation">
<li>
<a href="index.html">Home</a>
</li>
<li>
<a href="about.html">About</a>
</li>
<li class="active">
<a href="uploadfile.html">Upload File</a>
</li>
<li>
<a href="team.html">Team</a>
</li>
<li>
<a href="contact.html">Contact Us</a>
</li>
</ul>
</div>
</div>
<div>
{% if saved %}
<strong>Your file was uploaded.</strong>
<button onclick = "results()">Results</button>
<p id = "totvar">This will change</p>
{% endif %}
{% if not saved %}
<strong>Your file was not uploaded.</strong>
{% endif %}
</div>
<div id="footer">
<div class="clearfix">
<div id="connect">
<a href="http://freewebsitetemplates.com/go/facebook/" target="_blank" class="facebook"></a><a href="http://freewebsitetemplates.com/go/googleplus/" target="_blank" class="googleplus"></a><a href="http://freewebsitetemplates.com/go/twitter/" target="_blank" class="twitter"></a><a href="http://www.freewebsitetemplates.com/misc/contact/" target="_blank" class="tumbler"></a>
</div>
<p>
© 2023 Zerotype. All Rights Reserved.
</p>
</div>
</div>
</body>
</html>
我在html中创建了一个按钮,可以在点击时激活脚本。我的脚本没有做太多,因为我不知道该怎么做。我刚试图显示也没有显示的tot变量。任何人都可以告诉我关于如何在js函数中处理数据帧和变量并显示结果的完整脚本。
答案 0 :(得分:1)
我不知道你在做什么,但你发送locals()作为上下文。首先,你为什么这样做?你不能在模板中使用它们。第二,你应该在render()中的第三个参数中发送你的上下文,如果你需要在模板上下文中使用locals,那么写一下这样的东西:
ctx = locals()
ctx.update(
js_json1 = json1,
TotVar = tot,
)
return render(request, 'uploaded.html', ctx)
或
ctx = {
'locals': locals(),
'js_json1': json1,
'TotVar': tot,
}
return render(request, 'uploaded.html', ctx)
https://docs.djangoproject.com/en/1.10/topics/http/shortcuts/#render