django - 在 django 中找不到文件
问题描述
我正在尝试使用我的 django 项目中的一些json
和csv
文件,但它从未找到它们。
我创建了一个静态文件夹,并在其中创建了一个名为 data 的新文件夹,其中包含不同的文件。但是当我调用它时,消息总是一样的,它找不到我的文件的路径。
[Errno 2] 文件 b'data/data.csv' 不存在:b'data/data.csv'
在里面settings.py
我有这个:
STATIC_URL = '/static/'
STATICFILES_DIRS =[
os.path.join(BASE_DIR, 'static'),
]
有人知道我做错了什么吗?
我如何调用csv
文件的示例:
def dataframex():
data_csv = pd.read_csv('data/data.csv')
print(data_csv)
谢谢!
解决方案
pandas.read_csv()
不知道 Django 的staticfiles
配置。
假设您使用的是本地静态文件,而不是 S3 支持的文件或更深奥的东西,您可以使用它finders.find()
来定位磁盘上的真实文件:
from django.contrib.staticfiles import finders
def dataframex():
csv_path = finders.find('data/data.csv')
data_csv = pd.read_csv(csv_path)
print(data_csv)
但是,对于不需要直接提供给用户的静态文件,例如这个,最好将它们存储在您的应用程序目录中。
假设myapp/views.py
包含上述内容,您可以移至data.csv
,myapp/data.csv
然后使用
csv_path = os.path.join(os.path.dirname(__file__), 'data.csv')
找到文件。
推荐阅读
- c++ - C++ 引发错误:在从头文件调用构造函数时使用未声明的标识符 C++
- android - 无法显示阵列适配器项目它采用背景颜色
- pseudocode - 如何编写一个伪代码来识别符合录取条件的申请人并输出他们的姓名、学号和学习方式
- javascript - Vue视图在视图之间切换但不加载时工作
- wordpress - 如何从对象中获取值而不是键以用于 vue.js 绑定(:class)
- javascript - discord.js 中的 MySQL
- python - discord.py 错误:IndentationError: unindent 不匹配任何外部缩进级别
- webpack - 使用 Electron 构建基于 webpack 的 svelte 应用程序时如何使用 require()?
- python - sqlite 查询中缺少 len()
- mongodb - 如何使用文档中的 2 个数组映射数组