用户可以从模板上传一个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?或者也许是第三种?
没有"正确"的方法,因为这完全取决于具体情况。在这种情况下,这取决于 CSV 文件中数据的大小。鉴于数据相当大,最好的方法是最有可能将解析的数据存储在服务器上,然后在下一个请求中只发送用户选择的完整数据集。
我建议您解析数据并将其作为 JSON blob 存储在数据库中,以便您可以轻松地在下一个请求中检索它。通过这种方式,您可以发送用户选择的行和列(或"坐标"(,然后将其保存为真实数据。立即存储它的好处是,即使在离开流后,用户也可以返回到流程。但是,缺点是,如果用户从未完成该过程,则保存未使用的数据,并且您可能需要稍后清除此数据。如果将其存储在仅包含临时数据的表中,则应简化清理过程。
我想在前端解析CSV文件,并为用户提供选择列的选项。选择列后,我会将这些带有值的列发送到后端。