Django 读取静态文件

Django 读取静态文件,django,Django,我有一个Django项目,名为myproject,其中有一个应用程序名为myapp。我想读取一个文本文件并将其内容加载到列表中。我对Django中的静态文件和相对目录有点困惑,而我最初的尝试是无效的。到目前为止,我有以下代码 在/myproject/settings.py中: STATIC_URL = '/static/' with open('myapp/myfile.txt') as f: lines = f.readlines() 在/myapp/static/myapp中,有

我有一个Django项目,名为
myproject
,其中有一个应用程序名为
myapp
。我想读取一个文本文件并将其内容加载到列表中。我对Django中的静态文件和相对目录有点困惑,而我最初的尝试是无效的。到目前为止,我有以下代码

/myproject/settings.py
中:

STATIC_URL = '/static/'
with open('myapp/myfile.txt') as f:
    lines = f.readlines()
/myapp/static/myapp
中,有一个名为
myfile.txt
的文件

/myapp/views.py
中:

STATIC_URL = '/static/'
with open('myapp/myfile.txt') as f:
    lines = f.readlines()
运行服务器时,我得到错误:
没有这样的文件或目录:“myapp/myfile.txt”

我做错了什么?

在您的设置中:

import os
gettext = lambda s: s
PROJECT_PATH = os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(__file__)), '..'))
MEDIA_ROOT = os.path.join(PROJECT_PATH, "media")
MEDIA_URL = "/media/"
在你的应用文件夹下创建一个文件夹
media

然后将要读取的文件放在该文件夹中

然后在your views.py中尝试以下操作:

from django.conf import settings
with open(settings.MEDIA_ROOT + '\\yourfile.text', 'rb') as f:
  lines = f.readlines()

您是否尝试了
myapp/static/myapp/myfile.txt
而不是
myapp/myfile.txt
?请使用os.path.join而不是+'\\'。