【问题标题】:Sending data from view.py to a javascript in django将数据从 view.py 发送到 django 中的 javascript
【发布时间】:2016-12-13 14:12:09
【问题描述】:

我知道以前有人问过类似的问题,但我对 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 函数中处理数据帧和变量并显示它们的结果的完整脚本。

【问题讨论】:

    标签: javascript python django pandas


    【解决方案1】:

    我不知道你在做什么,但你发送 locals() 作为上下文。首先,你为什么这样做?你不在模板中使用它们。其次,你应该在 render() 的第三个参数中发送你的上下文,如果你需要模板上下文中的本地人,请编写如下内容:

    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

    【讨论】:

    • 好的!我已经进行了这些更改,但是如何在 javascript 中处理它们?我的 javascript 似乎无法正常工作。
    猜你喜欢
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 2013-08-10
    • 1970-01-01
    相关资源
    最近更新 更多