Django应用程序在同一目录中找不到json文件[关闭]

Posted

技术标签:

【中文标题】Django应用程序在同一目录中找不到json文件[关闭]【英文标题】:Django app can not find json file in the same directory [closed] 【发布时间】:2017-11-22 15:53:45 【问题描述】:

我的 json 文件与 view.py 文件位于同一目录中。 但是,当我在浏览器中打开 html 时,会发生 IO 错误。 当我通过 pycharm 运行 view.py 时,它工作正常。 JSON 文件是一个数据库配置文件。我想显示数据库中的一些数据,在这种情况下我需要先连接到数据库。

【问题讨论】:

复制粘贴代码,从你的view.py文件中读取json文件 【参考方案1】:

根据提供的信息,真的很难给你一个好的答案。 但是,我假设您在 PyCharm 中通过实际运行 views.py 而不是使用 runserver 命令来运行视图?在这种情况下,执行目录是您的应用程序的文件夹,并且可以解析到 JSON 文件的相对路径。

只要您运行开发或真实服务器并使用其 URL 在浏览器中访问视图,执行目录就是 manage.py 文件(项目的根文件夹)的目录。如果您只是访问 JSON 文件的名称,则无法找到它,因为您在错误的文件夹中搜索它。

您将 JSON 文件用于什么目的?如果它也应该在网络浏览器中可用(作为例如 javascript 的资源),那么您可能希望将其放入您的应用程序或项目的静态文件夹中(记得运行 manage.py collectstatic)。在这种情况下,STATIC_ROOT 将在 settings.py 中定义,您可以从那里解析路径(使用 os.path.join(STATIC_ROOT, "path to json file")

【讨论】:

非常感谢,我认为您解决了我的问题。当我把json文件放到manage.py目录下,浏览器就可以找到这个json文件了。但是当我把它放在app目录下时,就会发生IO错误。非常感谢您的明确回答 我很高兴@SparrowJack 有效。如果你的问题最终得到解决,如果你能将我的答案标记为解决方案,那就太好了。 我很高兴@SparrowJack 有效。如果你的问题最终得到解决,如果你能将我的答案标记为解决方案,那就太好了。【参考方案2】:

如果你需要通过浏览器查看JSON文件,你需要把它放在静态文件夹中。

【讨论】:

以上是关于Django应用程序在同一目录中找不到json文件[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

EB CLI 在应用程序根目录中找不到 Dockerfile 或 Dockerrun.aws.json 文件

Python 在同一文件夹中找不到模块

在 django 的测试中找不到 Postgres 函数 json_array_elements

Typescript Nodejs Dockerfile:错误 TS5057:在指定目录中找不到 tsconfig.json 文件:“。”

在 Django Rest Framework 中找不到资源时返回自定义 404 错误

在 Django 视图中找不到静态文件