现在我正在使用django中基于文件的会话来保存数据。
SESSION_ENGINE = "django.contrib.sessions.backends.file"
根据文档 django 将数据保存在/tmp
中,但我不明白这个/tmp
的实际路径是什么!这是我项目中的目录还是在哪里?
我想你误读了文档,文档 [Django-doc] 说:
您可能还想设置
SESSION_FILE_PATH
设置(默认为tempfile.gettempdir()
输出,很可能是/tmp
(来控制 Django 存储会话文件的位置。请务必检查您的 Web 服务器是否有权读取和写入此位置。
如果我们检查tempfile.gettempdir()
[Python-doc] 上的文档,我们会得到:
返回用于临时文件的目录的名称。这 定义 DIR 参数的默认值,以用于 中的所有函数 此模块。
Python 搜索一个标准的目录列表,以找到一个 调用用户可以在中创建文件。该列表是:
- 由
TMPDIR
环境变量命名的目录。- 由
TEMP
环境变量命名的目录。- 由
TMP
环境变量命名的目录。特定于平台的位置:
- 在Windows上,目录按顺序
C:TEMP
、C:TMP
、TEMP
和TMP
。- 在所有其他平台上,目录按此顺序
/tmp
、/var/tmp
和/usr/tmp
。作为最后的手段,当前工作目录。
此搜索的结果已缓存,请参阅
tempdir
的说明 下面。
因此,尽管在基于Unix的系统(Linux,BSD,Mac OS X等(上,它将存储在/tmp
中,这取决于操作系统。
至于基于 Unix 的文件系统,如果前面有一个斜杠(/
(,那表示绝对路径,所以它是文件系统根目录中的tmp
目录。有关 Unix 文件路径的更多信息,请参阅本文 [geeksforgeeks]。
但是,如果将SESSION_FILE_PATH
设置为特定路径,则将使用该路径。
请注意,临时文件是临时的。通常,您不应假设重新启动后文件仍然存在。