我想知道在 Django 中是否有一种正确且可接受的处理导入的方法?
我使用以下模式>
# import views from Django app called xxx to urls.py in the same app
from . import views
我在许多教程和博客中看到的内容>
# import views from Django app called xxx to urls.py in the same app
from xxx import views
同样我用>
# import YYY and XXX from xxx.models to xxx.serializers.py
from .models import YYY, XXX
我在 Django-Rest-Framework 教程中看到的示例是 >
# import YYY and XXX from xxx.models to xxx.serializers.py
from xxx.models import XXX, YYY
以教程中所示的方式进行导入在我的 Django 应用程序中不起作用。难道我做错了什么?我从 Django 文档中选择了自己的方式。 我正在使用 Django 1.10 和 Python3.5
最佳答案
假设您有一个如下所示的 Django 项目:2 个名为 app_1
和 app_2
的应用
mysite/
manage.py
app_1/
__init__.py
models.py
views.py
app_2/
__init__.py
models.py
views.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
现在要运行此应用程序,您将使用此命令。
mysite> python manage.py runserver
在这里,您正在从 mysite
父文件夹/目录运行命令。
现在在 python app_1
View 中,代码表示您正在导入 app_2
模型(如果您的代码结构良好,则不必这样做)。但是要进行导入,您必须执行完整的命名空间。
例子:
从 app_2.models 导入 XXX
另一方面,如果您想从同一个应用 app_1
中导入模型,您可以使用
从 .models 导入 YYY
但如果您使用 mysite> python manage.py runserver
命令运行该程序,您应该也能够导入具有完整命名空间路径的相同模块。
从 app_1.models 导入 YYY
注意:编写代码的好方法始终是明确的。因此,您会注意到这些处方更常见。
# import views from Django app called xxx to urls.py in the same app
from xxx import views
# import YYY and XXX from xxx.models to xxx.serializers.py
from xxx.models import XXX, YYY
关于python - 做 Django 导入的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41485744/