如何在 django 模板中创建文件

Posted

技术标签:

【中文标题】如何在 django 模板中创建文件【英文标题】:how to create a file inside the django template 【发布时间】:2014-05-22 05:44:54 【问题描述】:

我正在生成谷歌图表并使用 getimageuri() 方法将它们转换为图像。此方法返回一个 url,现在我需要将该 url 存储到文件中。 我不知道以及如何将数据存储到其中。 以下是我在 javascript 中的图表生成代码:

<script type="text/javascript">
  google.load('visualization', '1', packages: ['corechart','table']);
  function drawVisualization() 
    // Some raw data (not necessarily accurate)
    var data = google.visualization.arrayToDataTable([
         ['Job-Names', 'Pass', 'Fail'],
             data.0.0|safe
]);

    var options = 
      title : 'Jenkins Job Details for project data.0.1',
      vAxis: title: "Job Names" , textStyle : fontSize : 10 ,
      hAxis: title: "Number of Builds" , ticks : [2,4,6,8,10] ,
      is3D: true,
  width: 1250,
  height: 550,
      colors : ["#008000", "#cc0000"],
      pointSize: 4

    ;

    var chart_div = document.getElementById('chart_div');
    var chart = new google.visualization.BarChart(chart_div);

// Wait for the chart to finish drawing before calling the getImageURI() method.
google.visualization.events.addListener(chart, 'ready', function () 
chart_div.innerhtml = '<img src="' + chart.getImageURI() + '">';
imageurl = chart.getImageURI()


 );

    chart.draw(data, options);


    //var table = new google.visualization.Table(document.getElementById('table_div'));
    //table.draw(data, showRowNumber: false);
  

 google.setOnLoadCallback(drawVisualization);

我需要存储到文件中的那个 imageurl。 任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

getimageuri() 实际上返回文件本身,uriencoded,看起来像:

data:image/png;base64,iVBORw0KGgoAA...

如果要在服务器端存储此图像,则必须将其发送到服务器,最好使用AJAX,然后通过丢弃,之前的文本在服务器端进行处理,然后创建图像文件使用 django 的 File 函数从 base64 字符串中提取。

【讨论】:

但我只需要将这个 url 创建到文件中。有什么办法吗..?/ 你想把它存储在客户端吗? 在上面的代码中,我得到了 imageurl,现在我只想将它存储到文件中。 如果你读了我的回答,我写得很清楚,没有秘密按钮,你必须实现它,这不是 URL,图像数据存储在 URI 编码字符串中。跨度>

以上是关于如何在 django 模板中创建文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在文件夹中创建自定义页面模板

如何在 Django 项目中创建 requirements.txt 文件?

Django自定义模板函数

如何在 Django 模板中创建正确的路径

Django如何在数据库中创建表

Python Django:在内存中创建文件对象而不实际创建文件