Django:从另一个应用程序导入视图

时间:2017-02-20 05:10:53

标签: python django

我有一个项目和一个应用程序。我正在尝试使用项目中的urls.py来激活应用程序中保存的视图。

错误消息:import homepage.index ModuleNotFoundError:没有名为' homepage.index'

的模块

在项目urls.py中我有这个import语句:

的项目/ urls.py

stride=2

然后在项目的urls.py中,urlpatterns []数组包含了这个 参考应用程序的视图:

from homepage.views import index

主页/ views.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', homepage.views.index, name='index'),
]

哪里可能是错误?

2 个答案:

答案 0 :(得分:2)

您没有正确导入。变化

url(r'^$', homepage.views.index, name='index'),

url(r'^$', index, name='index'),

答案 1 :(得分:0)

Django是一个用python编写的Web框架,没有任何魔法。你在urls.py

指定了你的视图的完整路径
# here the view is available as index
from homepage.views import index
# so reference the view as index
url(r'^$', index, name='index'),

如果你需要引用完整的命名空间,

# here the view can be imported as you intented
import homepage
url(r'^$', homepage.views.index, name='index'),

需要注意的事项
当模块引用不可用时引发ModuleNotFound, 在这种情况下,python将尝试使用homepage模块,但在当前上下文中不可用 当引用的属性或模块在已导入的模块中不可用或使用ImportError时,将引发from module import x

>>> from os import wow
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'wow'