在Django中创建一个临时文件以传递给Shiny应用程序。这是不好的做法吗?

时间:2018-06-07 17:39:37

标签: python r django shiny temporary-files

我有一个Django应用程序。这将最终将一堆数据传递给Shiny应用程序。现在,显然没有“好”的方式在两者之间传输数据 - 所以我决定使用Django应用程序生成临时CSV文件。并从闪亮的应用程序中读取它。

Django代码看起来像:

csv_file = tempfile.NamedTemporaryFile()
# Write CSV to temporary file
csv_file.seek(0)
return redirect('/shiny?filename=' + csv_file.name())

Shiny代码看起来像:

server <- function(input, output, session) {
    file_name <- session$clientData$filename
    data <- read.csv(filename)
    ...
}

Shiny中的server函数每个会话调用一次;也就是说,只有在重定向用户时才会打开此文件一次。据推测,关闭浏览器或任何其他此类操作将结束会话并关闭/删除文件。

现在,根据this帖子,return块中的with就像finally一样。它是如何在with块之外起作用的?

我是否过于依赖Django在重定向时关闭文件之间存在一些滞后时间,而Shiny打开文件?我真正想做的是避免手动删除文件。

0 个答案:

没有答案