我一直在try 将Python字典发送到HTML页面,并在Javascript中使用该字典,使用Django在我的网站上添加一个图形

表单需要上传图像,代码如下:,

 <div class=" mx-5 font-weight-bold">
    Uplaod Image
  </div>
  <input class=" " type="file" name="filePath">
  <input type="submit" class="btn btn-success" value="Submit">

然后将该图像发送到views.py,在那里对其进行处理,并从该图像生成结果图像以及字典.然后再次呈现一个HTML页面,其中字典以及生成的图像在上下文变量中发送.代码如下:,

def predictImage(request):
    fileObj = request.FILES['filePath']
    fs = FileSystemStorage()
    filePathName = fs.save(fileObj.name, fileObj)
    filePathName = fs.url(filePathName)
    testimage = '.'+filePathName
    img_result, resultant_array, total_objects = detect_image(testimage)
    cv2.imwrite("media/results/" + fileObj.name, img=img_result)

    context = {'filePathName':"media/results/"+fileObj.name, 'predictedLabel': dict(resultant_array), 'total_objects': total_objects}
    #context = {}
    return render(request, 'index.html', context)

现在,我想将字典项和键转换成两个不同的Javascript数组,然后用它们在HTML页面上绘制一个图形.Javascript的模板代码如下:,

          <script>
            // const value = JSON.parse(document.getElementById('data_values').textContent);
            // alert(value);
            var xArray = [];
            var yArray = []; 
            
            var xArray = ["Italy", "France", "Spain", "USA", "Argentina"]; // xArray needs to have Python Dictionary's keys
            var yArray = [55, 49, 44, 24, 15]; // yArray needs to have Python Dictionary's values

            var layout = { title: "Distribution of Labels" };

            var data = [{ labels: xArray, values: yArray, hole: .5, type: "pie" }];

            Plotly.newPlot("myPlot", data, layout);
          </script>

我try 了很多不同的方法来访问Javascript脚本中的Python字典,然后将其转换为Javascript数组,但我仍然没有做到这一点.我还try 了不同的Stackoverflow帖子等,但没有什么能真正正确地指导我.我也是Django的新手,所以我对语法也不太了解.

推荐答案

101json_script

{{ value|json_script:"hello-data" }}

在Javascript中

<script>    
  const data = JSON.parse(document.getElementById('hello-data').textContent);
  var xArray = Object.keys(data) // return list of keys
  var yArray = Object.values(data) // return list of values
</script>

Javascript相关问答推荐

使用Angular 17计算从生日日期起的年、月、天

jest使用useLocate测试自定义挂钩

为什么我会获取MUI Date TimePicker TypHelp:Value.isValid不是AdapterDayjs.isValid中的函数

d3可排序表标题行中有收件箱--如何使收件箱不触发排序?

Angular:ng-contract未显示

如何修复循环HTML元素附加函数中的问题?

使用TMS Web Core中的HTML模板中的参数调用过程

D3 Scale在v6中工作,但在v7中不工作

嵌套异步JavaScript(微任务和macrotask队列)

点击按钮一次有文本出现和褪色,而不是点击两次?(html,CSS,JavaScript)

Chart.js 4.4.2,当悬停在一个数据点上时,如何在工具提示中拥有多个数据点/标签?

你怎么看啦啦队的回应?

为什么按钮会随浮动属性一起移动?

Angular 订阅部分相互依赖并返回数组多个异步Http调用

React.Development.js和未捕获的ReferenceError:未定义useState

禁用.js文件扩展名并从目录导入隐式根index.js时,找不到NodeJS导入模块

邮箱密码重置链接不适用于已部署的React应用程序

如何修复使用axios运行TSC index.ts时出现的错误?

Next.js无法从外部本地主机获取图像

有没有办法更改Chart.js 3.x.x中主要刻度的字体?