2016-12-13 5 views
0

これまで同様の質問がされていることは知っていますが、私はdjangoとjsの新機能です。私は多くの解決策を試しましたが、私は多くのことを理解できず、実行することができません。だから私は自分のコードと私が試した解決策を書いている。誰かが私の間違いを教えてもらえますか?view.pyからdjangoのjavascriptにデータを送信する

私のviews.py私はいくつかの結果を生成するファイルを処理しています。これらの結果は、データフレーム(使用されたパンダ)の形をしています。このデータフレームから、私は変数に格納された整数値を計算しています:tot,p,lp,us。私はまた、3つのサブデータフレームすなわち:を取得しています。私はこれらをウェブページ上に表示する必要がありますので、以下に示すように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}) 

上記のコードは、私がそれを行う方法がわからないので、変数だけを送信し、データフレームは送信しません。私はクリックでスクリプトをアクティブにし、私の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> 

:私は、次のように私のuploaded.htmlでそれを扱っています。私はどのようにするかわからないので、私のスクリプトではあまりやっていない。私はちょうど表示されていないtot変数を表示しようとしました。誰も私のjs関数でデータフレームと変数を処理し、その結果を表示する方法の完全なスクリプトを教えてもらえますか?

答えて

1

あなたは何をしているのかわかりませんが、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

+0

[OK]を!私はこれらの変更を行ったが、どのようにそれらはJavaScriptで処理されるのだろうか?私のjavascriptは動作していないようです。 – ShreyGupta

+0

私はそれを試しました。それは動作するようです。ありがとう!! – ShreyGupta

関連する問題