视图

时间:2015-10-19 15:40:17

标签: python django

有人可以告诉我有关其工作原理的完整说明:

虽然models.py和views.py位于django应用程序的同一目录中,但我们为什么要使用相对导入:

app1:
  models.py
    # my models was defined here

  views.py
    from .models import *      # this works
    from app1.models import *  # this also works
    from models import *       # ---this one does not work ---

admin.py

会发生同样的情况

如果我导入

  from .models import *

然后

python manage.py check

一切都好 但是

from models import *



python manage.py check

ImportError: No module named 'models

我现在正在使用python 3.4.x而且我没有2.7.x的这个问题

1 个答案:

答案 0 :(得分:1)

了解您正在使用的Python版本会有所帮助,但我猜它是Python 3.引用PEP 8:

  

永远不应该使用隐式相对导入,并且已在Python 3中删除。

我建议阅读PEP 8关于进口的部分,在这里:https://www.python.org/dev/peps/pep-0008/#imports

如果你想了解更多关于这个主题的内容,我会建议PEP 328,它会更详细地介绍绝对与相对进口的理由。

这是另一个关于python 3相对导入的更清晰描述的链接:

Changes in import statement python3