如何访问 django 项目外的目录文件?
Posted
技术标签:
【中文标题】如何访问 django 项目外的目录文件?【英文标题】:How to access directory file outside django project? 【发布时间】:2017-01-06 19:04:58 【问题描述】:我的 Django 项目在 RHEL 7 操作系统上运行。该项目位于路径/root/project
中。项目托管在 httpd 服务器上。现在我正在尝试访问目录之外的文件,例如/root/data/info/test.txt
我应该如何访问 views.py 中的这个路径,以便我可以读取和写入项目目录之外的文件?我尝试在sys.path
中添加路径,但没有成功。文件的读写权限也被赋予。
【问题讨论】:
你试过“../data/info/test.txt”吗? 您是否尝试过使用完整路径? 为什么要在项目目录之外做一些事情?我的意思是选择read/write a file inside the project directory
(如果文件不存在则创建文件)和你的git/svn(版本控制系统),ignore the file from getting committed
到项目
是的。我尝试使用完整路径,这给了我们 500 个内部错误。 ......... 我正在尝试做一些自动化,它有一个公共存储库,其他用户可以从中获取数据并运行脚本。我不想在项目中使用这个共享目录
【参考方案1】:
将以下行添加到您的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')
【讨论】:
以上是关于如何访问 django 项目外的目录文件?的主要内容,如果未能解决你的问题,请参考以下文章