我试图在python中打开一个json文件。它位于我的应用程序静态目录中的一个名为json的目录中。我按照给定的文档配置了静态文件。
但是我在使用open()函数打开python中的文件时出现了这个错误。
def send(request):
file = static('accounts/json/credentials.json')
f = open(file, "r")
return HttpResponse("click here <a href='" + file + "'> asd</a>")上面的代码生成一个FileNotFoundError
No such file or directory: '/static/accounts/json/credentials.json'
我还使用了以下代码
def send(request):
file = static('accounts/json/credentials.json')
return HttpResponse("click here <a href='" + file + "'> asd</a>")上面的代码成功地给了我响应。在单击asd链接时,它正常工作,并打开JSON文件。
我已经谷歌了一点,也经历了一些堆叠溢出问题,但不确定实际的错误是什么,谁能帮我找出。谢谢
发布于 2018-12-02 18:15:12
假定static是来自静态模板的辅助函数,它将为您提供STATIC_URL的URL路径。它不会给你文件路径。这是在STATIC_ROOT中设置的,您需要自己加入它:
path = os.path.join(settings.STATIC_ROOT, 'accounts/json/credentials.json')
f = open(path, r)注意,尝试将这个文件放入链接的文本中是没有意义的;如果您想要这样做,那么第二个片段是正确的。
发布于 2018-12-02 17:41:48
在您的settings.py文件中,应该有一个名为BASE_DIR定义的变量。你需要在你的文件名上加上这个。类似于:
file = static(settings.BASE_DIR + '/accounts/json/credentials.json')https://stackoverflow.com/questions/53582819
复制相似问题