d3js 用 django/python 修改 csv 文件

d3js with django/python modify csv file

我的服务器中存储了一个 csv 文件列表,我使用 d3js 将它们显示给使用 table 渲染和 d3.js 的用户,我使用 django 进行服务器端工作。但是,我想添加一个新功能,即当用户点击table中的一个值时,他们可以更改它们,当然,修改也适用于真实文件(我存储在服务器中的那个).我的想法是将每个值标记为一行和 col id,当用户修改一个值时,我使用 ajax 将新值和 row-col id 传递给服务器,在服务器端,有一个函数修改 csv 文件这3个输入。我想知道是否有任何演示或其他更好的方法来处理此任务。 非常感谢

我通常会使用基于纯文件的 csv 来避免您的方法。

常量 disk/IO 操作对服务器来说很昂贵(Read this FAQ 可能会帮助您了解更多),并且可能会导致多个用户尝试更新同一个 table 的竞争条件,即然后 csv => read/write <-> access/lock

我个人建议结合使用 NoSQL database (like Redis, MongoDB etc.) as a storage backend for your d3.js, communicate between server <-> clients by using WebSocket - Pub/Sub 消息(使用 ajax 作为后备)。

Read/Write table 状态通过 queue system (Celery 或仅使用您的 NoSQL)。

如果您如此坚持,您也可以通过编写自定义服务器脚本来定期存储备份 dump/export 存储(table 数据)到 csv 文件。

我希望我的解释和建议能引导您找到正确的方向并最终找到您的最佳实施(每个人的用例都不同)。祝你好运!