Django 会话中'/tmp'的文件路径



现在我正在使用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 搜索一个标准的目录列表,以找到一个 调用用户可以在中创建文件。该列表是:

  1. TMPDIR环境变量命名的目录。
  2. TEMP环境变量命名的目录。
  3. TMP环境变量命名的目录。

特定于平台的位置:

  1. 在Windows上,目录按顺序C:TEMPC:TMPTEMPTMP
  2. 在所有其他平台上,目录按此顺序/tmp/var/tmp/usr/tmp

作为最后的手段,当前工作目录。

此搜索的结果已缓存,请参阅tempdir的说明 下面。

因此,尽管在基于Unix的系统(Linux,BSD,Mac OS X等(上,它将存储在/tmp中,这取决于操作系统。

至于基于 Unix 的文件系统,如果前面有一个斜杠(/(,那表示绝对路径,所以它是文件系统目录中的tmp目录。有关 Unix 文件路径的更多信息,请参阅本文 [geeksforgeeks]。

但是,如果将SESSION_FILE_PATH设置为特定路径,则将使用该路径。

请注意,临时文件是临时的。通常,您不应假设重新启动后文件仍然存在。

最新更新