现在我正在django中使用基于文件的会话来保存数据。
SESSION_ENGINE = "django.contrib.sessions.backends.file"
根据文档django将数据保存在/tmp
中,但我不知道此/tmp
的实际路径是什么!这是我项目中的目录还是其他目录?
答案 0 :(得分:1)
我认为您误读了文档,documentation [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
目录在文件系统的 root 中。有关Unix文件路径的更多信息,请参见this article [geeksforgeeks]。
但是,如果您将SESSION_FILE_PATH
设置为特定路径,则将使用该路径。
请注意,临时文件是临时文件。通常,您应该不假定重新启动后文件仍然存在。