Django Session中“ / tmp”的文件路径

时间:2018-09-23 18:31:52

标签: django session

现在我正在django中使用基于文件的会话来保存数据。

SESSION_ENGINE = "django.contrib.sessions.backends.file"

根据文档django将数据保存在/tmp中,但我不知道此/tmp的实际路径是什么!这是我项目中的目录还是其他目录?

1 个答案:

答案 0 :(得分:1)

我认为您误读了文档,documentation [Django-doc]说:

  

您可能还希望设置SESSION_FILE_PATH设置(默认为tempfile.gettempdir() 的输出,很可能是/tmp的输出),以控制Django在何处存储会话文件。确保检查您的Web服务器是否具有读写此位置的权限。

如果我们查看tempfile.gettempdir() [Python-doc]上的文档,则会得到:

  

返回用于临时文件的目录的名称。这个   为所有函数中的dir参数定义默认值   该模块。

     

Python搜索标准目录列表以查找其中的一个   调用用户可以在其中创建文件。列表为:

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

特定于平台的位置:

     
      
  1. 在Windows上,目录C:\TEMPC:\TMP\TEMP\TMP依次排列。
  2.   
  3. 在所有其他平台上,目录/tmp/var/tmp/usr/tmp依次排列。
  4.   
     

万不得已的是当前工作目录。

     

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

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

对于基于Unix的文件系统,如果前面有斜杠(/),则表示绝对路径,因此它是tmp目录在文件系统的 root 中。有关Unix文件路径的更多信息,请参见this article [geeksforgeeks]

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

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