在 Python 中使用 Django - 尝试导入时未定义视图

Posted

技术标签:

【中文标题】在 Python 中使用 Django - 尝试导入时未定义视图【英文标题】:Using Django with Python - Views is not defined when trying to import 【发布时间】:2020-07-11 00:21:51 【问题描述】:

我正在研究以下关于 Django 和 Python 的 YT 视频,因为我正在寻找制作我的第一个应用程序并尝试了解 Django 的工作原理:

https://www.youtube.com/watch?v=F5mRW0jo-U4

我正在向名为 Pages 的应用程序添加新视图并尝试从该应用程序导入视图,但由于某种原因不断收到:

NameError: 'views' 未定义。我确信这是我所缺少的一些小东西,因为我对 python 的一般性和导入都是新奇的。这是我当前的代码:

from django.contrib import admin
from django.urls import path

#from Pages import views
from Pages.views import homepage_view, toybox_view, lounge_view, gym_view

urlpatterns = [
    path('', views.homepage_view, name='home'),
    path('toybox/', views.toybox_view, name='toybox'),
    path('lounge/', views.lounge_view, name='lounge'),
    path('gym/', views.gym_view, name='gym'),
    path('admin/', admin.site.urls),

]

第二个'from'语句不起作用-注释掉的语句确实起作用,我只是想对我的导入更具体。我有一个包含我的项目的“src”文件夹 - DogtopiaWeb 和两个应用程序,Dogs 和 Pages。 Pages 应用程序内部是我尝试使用上述 from 语句导入的 views.py。

知道为什么它无法识别 Pages 应用目录中的 views.py 吗?我将它导入到 DogopiaWeb 项目内部的 urls.py 中。

第一个屏幕截图是我的根目录,其中包含 manage.py 以及两个应用程序和主项目。第二个屏幕截图位于“页面”应用程序中,显示了导入无法识别的 views.py 文件。

谢谢!

【问题讨论】:

【参考方案1】:

问题是您不需要来自您的应用程序Pagesviews,您已经将特定视图导入到:

from Pages.views import homepage_view, toybox_view, lounge_view, gym_view

所以使用以下内容:

urlpatterns = [
    path('', homepage_view, name='home'),
    path('toybox/', toybox_view, name='toybox'),
    path('lounge/', lounge_view, name='lounge'),
    path('gym/', gym_view, name='gym'),
    path('admin/', admin.site.urls),

]

或者如果您想使用views.name_of_your_view,您需要导入您已注释from Pages import views 的行并删除另一行。

【讨论】:

以上是关于在 Python 中使用 Django - 尝试导入时未定义视图的主要内容,如果未能解决你的问题,请参考以下文章

django思维导图

python 设置默认的导包路径

ArcGIS基础篇——如何将模型导成py文件?

记一次Django响应超慢的解决过程

记一次Django响应超慢的解决过程

Django思维导图未完