【问题标题】:Django: How to pass a python list from view to Jquery?Django:如何将 python 列表从视图传递到 Jquery?
【发布时间】:2013-07-15 06:32:34
【问题描述】:

我有一个从我的views.py中的文件中获取的python列表(fileContents):

views.py:

def job_progress_logs(request):
    fileContents = [line.strip() for line in open('C:\VSA Automation.log')]
    return HttpResponse(json.dumps({"fileData" : fileContents}), mimetype="application/javascript; charset=UTF-8") 

我想通过 JQuery 在我的 template.py 上显示这个列表:

template.py:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
function showData(){
var url = "/vsawebauto/automation/results/job_progress_logs";
    $.getJSON(url, function (data){
    // show the data
    var txtData="";
    for (var i = 0; i < data.length; i++) {
       txtData += data.fileData;
      }
      $('#progress').text(txtData);
  });
}
</script> 


<body>
<script type="text/javascript">
    setInterval(showData, 3 * 1000);
</script>
<div class="progress" id="progress"></div>
</body>

但是我无法使用上面的代码来做到这一点。任何帮助将不胜感激。

【问题讨论】:

  • 试试JSON.parse(data.responseText).lengthtxtData += JSON.parse(data.responseText).fileData

标签: jquery django django-templates django-views


【解决方案1】:

请使用
var parsedata = JSON.parse(data);
在您的 AJAX 函数中。您必须解析数据。

【讨论】:

    【解决方案2】:

    将您的代码封装在 DOM Ready Handler 中

    <script type="text/javascript">
       $(function() {
           setInterval(showData, 3 * 1000);
       });
    </script>
    

    最好将脚本移动到正文之前,这样HTML 渲染就不会因为脚本而被阻塞

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 2019-01-21
      • 2019-05-26
      • 2018-09-08
      • 1970-01-01
      • 1970-01-01
      • 2021-07-05
      相关资源
      最近更新 更多