【问题标题】:Django: Correct way of passing data object from view to template to view?Django:将数据对象从视图传递到模板到视图的正确方法?
【发布时间】:2020-01-03 09:56:47
【问题描述】:

用户可以从模板上传一个 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?或者可能是第三种?

【问题讨论】:

    标签: django data-objects


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2017-04-26
        • 2016-09-28
        • 2020-03-19
        • 2019-02-16
        • 2013-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-18
        相关资源
        最近更新 更多