如何访问 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 项目外的目录文件?的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat配置虚拟路径访问容器外的硬盘资源

SpringBoot目录结构

如何读取jar包外的properties文件和log4j.properties

请教iis目录漏洞攻击如何防护

django+vue前后端分离项目部署

使用 CodeIgniter 加载视图文件夹外的视图