Python脚本不在同一文件夹中时是否可以使用Django数据库?
我有一个python应用程序(我们称之为app),我希望有一个web前端。应用程序有许多文件,文件夹树结构保持原样很重要 我构建了一个Django项目,并将其放在应用程序文件夹中名为“Web”的文件夹中,因此现在文件夹树如下所示:Python脚本不在同一文件夹中时是否可以使用Django数据库?,python,django,python-2.7,django-models,Python,Django,Python 2.7,Django Models,我有一个python应用程序(我们称之为app),我希望有一个web前端。应用程序有许多文件,文件夹树结构保持原样很重要 我构建了一个Django项目,并将其放在应用程序文件夹中名为“Web”的文件夹中,因此现在文件夹树如下所示: [数据] [参考资料] [网页] [网前] 普通django应用程序文件 [网页] \uuuu init\uuuuu.py 设置.py url.py wsgi.py \uuuu init\uuuuu.py manage.py main.py 以下是应用
- [数据]
- [参考资料]
- [网页]
- [网前]
- 普通django应用程序文件
- [网页]
\uuuu init\uuuuu.py
- 设置.py
- url.py
- wsgi.py
\uuuu init\uuuuu.py
- manage.py
- [网前]
- main.py
import os
import django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Web.Web.settings")
django.setup()
此代码在django.setup()
行上导致异常,因为(我认为)django没有找到项目模块:ImportError:没有名为WebFront的模块
(WebFront是django应用程序的名称)
我怀疑这是因为django运行在python应用程序的目录中,因此找不到文件夹WebFront
——实际上应该是Web/WebFront
这能做到吗?或者我应该颠倒顺序,将python应用程序放在django应用程序中
这不是以下问题的重复,因为文件夹嵌套会导致不同的问题(我认为)
main.py
脚本。但是,如果它位于Web
文件夹之外,则必须将Web
添加到Python路径中,否则像import Webfront
这样的导入将失败
import sys
sys.path.append('/path/to/Web/')
完成此操作后,您可以将DJANGO\u设置\u模块
更改为
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Web.settings")
你可以在你喜欢的地方找到你的
main.py
脚本。但是,如果它位于Web
文件夹之外,则必须将Web
添加到Python路径中,否则像import Webfront
这样的导入将失败
import sys
sys.path.append('/path/to/Web/')
完成此操作后,您可以将DJANGO\u设置\u模块
更改为
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Web.settings")
真管用!但有两个问题。第一个-我仍然需要将Django指向“Web.Web.Settings”-“路径编辑”不应该解决这个问题吗?第二,当我尝试导入模型时,会出现错误
模型类Web.WebFront.models.MyModel没有声明明确的应用程序标签,并且不在已安装应用程序中的应用程序中。
您如何尝试导入模型?您安装了什么应用程序?从Web.WebFront.models导入MyModel
。我的INSTALLED\u APPS
列表上只有WebFront
如果在INSTALLED\u APPS
中有'WebFront'
,则需要使用sys.path.append()
将Web
添加到python路径中。然后,您应该从Webfront导入带有的模型。模型导入MyModel
,并将DJANGO\u设置\u DIR
更改为Web.SETTINGS
。如果这不起作用,那么我不确定问题出在哪里。使用您正在尝试的确切代码、完整回溯和磁盘上文件夹的完整路径更新您的问题可能会有所帮助。您是对的-导入行出错。正确的方法是从WebFront导入。模型导入MyModel
即可!但有两个问题。第一个-我仍然需要将Django指向“Web.Web.Settings”-“路径编辑”不应该解决这个问题吗?第二,当我尝试导入模型时,会出现错误模型类Web.WebFront.models.MyModel没有声明明确的应用程序标签,并且不在已安装应用程序中的应用程序中。
您如何尝试导入模型?您安装了什么应用程序?从Web.WebFront.models导入MyModel
。我的INSTALLED\u APPS
列表上只有WebFront
如果在INSTALLED\u APPS
中有'WebFront'
,则需要使用sys.path.append()
将Web
添加到python路径中。然后,您应该从Webfront导入带有的模型。模型导入MyModel
,并将DJANGO\u设置\u DIR
更改为Web.SETTINGS
。如果这不起作用,那么我不确定问题出在哪里。使用您正在尝试的确切代码、完整回溯和磁盘上文件夹的完整路径更新您的问题可能会有所帮助。您是对的-导入行出错。正确的方法是从WebFront导入。模型导入MyModel