如何在 Django 项目外访问目录文件?

12

我有一个在RHEL 7操作系统上运行的Django项目。该项目位于路径/root/project中,并托管在httpd服务器上。现在我正在尝试访问目录外的文件,例如/root/data/info/test.txt

我应该如何在views.py中访问此路径,以便可以读写项目目录之外的文件?我尝试将路径添加到sys.path中,但它没有起作用。文件已经授予了读写权限。


你试过 "../data/info/test.txt" 吗? - Sergey Luchko
1
你尝试使用完整路径了吗? - Ben Beirut
为什么你想在项目目录之外做一些事情呢?我的意思是选择在项目目录内读/写文件(如果不存在则创建该文件),并且对于你的git/svn(版本控制系统),忽略该文件以防止被提交到项目中。 - Nagaraj Tantri
是的。我尝试了完整路径,但会导致500内部错误。我正在尝试进行一些自动化操作,其中有一个共享存储库,其他用户可以从中获取数据并运行脚本。我不想让这个共享目录成为项目的一部分。 - ketan khandagale
1个回答

10
在您的settings.py文件中添加以下行:
import os
..
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
FILES_DIR = os.path.abspath(os.path.join(BASE_DIR, '../data/info'))

那么你可以在你的视图中使用它

from django.conf import settings
import os
..
file_path = os.path.join(settings.FILES_DIR, 'test.txt')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接