0

从模板用户可以上传一个 csv 文件,该文件被解析

def parseCSV(request):
  magic happens here (conforming date formats and all such fun things)
  return column names to template

此视图返回一个列列表,并要求用户选择 x 列进行保存。用户选择发布到

def saveCSV(request):
  logic for saving

现在我的问题是,如何最正确地处理视图 1 和 2 之间的 csv 数据对象?我是将其保存为临时文件还是将其作为数据对象来回发送 view1->template->view2?或者也许是第三个?

4

2 回答 2

0

我想在前端解析 CSV 文件,并为用户提供选择列的选项。选择列后,我会将这些列的值发送到后端。

于 2020-01-03T10:43:37.547 回答
0

没有“正确”的方法,因为这完全取决于具体情况。在这种情况下,它取决于 CSV 文件中数据的大小。鉴于数据比较大,最好的做法是最有可能将解析后的数据存储在服务器上,然后在下一个请求中只发送用户对完整数据集的选择。

我建议您解析数据并将其作为 JSON blob 存储在数据库中,以便您可以轻松地为下一个请求检索它。通过这种方式,您可以发送用户选择的行和列(或“坐标”),然后将其保存为真实数据。立即存储它的好处是用户即使在离开流程后也可以返回到流程。但是,不利的一面是,如果用户从未完成该过程,您会保存未使用的数据,并且您可能需要稍后清除它。如果将其存储在仅包含临时数据的表中,它应该会简化清理过程。

于 2020-01-03T12:21:23.267 回答