Heroku - Python Shell写入文件,但Django应用视图中不行?

2 投票
1 回答
1053 浏览
提问于 2025-04-17 14:55

我找了很久这个问题,但似乎找不到答案——可能是我搜索的方向不对——我需要帮助。

问题是:

我创建了一个简单的 'list.txt' 文件,里面存放了一些特定的代码行——举个例子,它是类似CSV格式的。当我在本地测试这个脚本时,一切运行得非常顺利,没有任何问题。但当我在Heroku的Cedar环境中运行它时,它的表现并不是我预想的那样。

于是我在终端中测试那些在视图中运行的代码:

比如:heroku run python

在shell中写入文件的过程运行得很好,它成功地写入了文件,我可以关闭再打开,看到我添加的数据——但在我写的view.py中却不行。

我尝试过更改文件权限,但没有成功;我也换过文件夹位置,还是不行。我知道它能识别这个文件,位置也没错,但它的表现和在shell中运行时不一样。

下面是shell和view.py中写入的示例代码:

file = open(PATH_TO_FOLDER + 'list.txt', 'w')
file.write('this is a line of text')
file.close()

read_file = open(PATH_TO_FOLDER + 'list.txt', 'r')
read_file.read()

任何建议都将是非常棒的!

1 个回答

1

在Heroku上,磁盘存储是临时的。

https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem

撰写回答