Python Django:创建csv文件并使用Javascript将其加载到视图中

Python Django:创建csv文件并使用Javascript将其加载到视图中,python,django,csv,web-applications,d3.js,Python,Django,Csv,Web Applications,D3.js,我正在开发一个web应用程序,它可以创建一些数据的可视化效果。 数据来自第三方,使用他们的API,并导入到我的数据库中。导入将偶尔进行,因此我的数据库将是相当静态的 可视化将使用JavaScript动态创建。 在考虑如何将数据从服务器传递(并格式化)到客户端时,我认为可以将其导出到.csv文件,然后从javascript加载(d3有内置的csv解析器)。 通过这种方式,csv文件可以兼作缓存系统:只有当它的时间超过(比如)一周时,才会重新生成它(从而查询数据库) 我的问题是:在哪里以及如何保存生

我正在开发一个web应用程序,它可以创建一些数据的可视化效果。
数据来自第三方,使用他们的API,并导入到我的数据库中。导入将偶尔进行,因此我的数据库将是相当静态的

可视化将使用JavaScript动态创建。 在考虑如何将数据从服务器传递(并格式化)到客户端时,我认为可以将其导出到.csv文件,然后从javascript加载(d3有内置的csv解析器)。
通过这种方式,csv文件可以兼作缓存系统:只有当它的时间超过(比如)一周时,才会重新生成它(从而查询数据库)

我的问题是:在哪里以及如何保存生成的csv文件<代码>静态根目录,
媒体根目录
,另一个硬链接目录? 另外,你认为csv系统是个好主意吗


抱歉,如果这些问题看起来没什么用,我不到一周前就开始学习django和d3了。

在django中,我们通常将静态文件存储在静态根目录下,这些文件是我们网站用来呈现内容(如CSS、JS)的文件。MEDIA_根目录下的文件通常是Django让Web服务器提供服务的图像和视频等媒体文件。我会将可视化数据文件存储在我的应用程序(位于django项目主目录下)的
data
目录下。这是构建django项目的好资源


至于使用CSV文件作为驱动可视化的数据文件,我更喜欢将数据导出为JSON,因为它是一种更紧凑的表示法。此外,我假设在JavaScript中解码JSON要比CSV快。尽管它取决于其他参数,如文件中数据的大小和结构。

您可以将文件放在STATIC\u ROOT中,这将是一个合适的位置

另一方面有两个想法:

  • 您是否考虑过在csv文件写入时锁定/禁用该文件?或者,如果客户机在不吉利的时候收到请求,可能会得到半个CSV文件,这不是问题吗

  • CSV不是将数据系列传输到JS客户端的标准方式。我可能会在文件中写入一个JSON数组


  • 如何从html/js文件中引用数据目录,只需硬编码
    。/data/something.csv
    ?Django不提供静态文件吗?我建议使用pythons
    os
    模块创建项目根、数据根(相对于项目根)变量。这样,您就不会因为Unix和Windows的路径分隔符符号不同而受到影响。csv是否比json更紧凑,因为字段名在标题中只出现一次?d3有很好的工具来处理csv,它已经成为我工作的首选格式。