【问题标题】:ImportError: cannot import name 'views' from 'learning_log'ImportError:无法从“learning_log”导入名称“views”
【发布时间】:2020-07-25 19:39:45
【问题描述】:

我是 django 的初学者并遵循教程。即使在输入确切的代码后也会出现导入错误。这是代码

views.py:

from django.shortcuts import render
def index(request):
    return render(request, 'learning_logs/index.html')

urls.py:

from django.contrib import admin
from django.urls import path
from django.conf.urls import include, url
from  . import views

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

应用网址:

from django.contrib import admin
from django.urls import path
from django.conf.urls import include, url
from learning_log import views
app_name = 'learning_logs'
urlpatterns = [
    #HomePage
    url(r'^$', views.index, name='index'),
    url(r'^topics/$',views.topics, name='topics'),
    # Detail page for a single topic
    url(r'^topics/(?P<topic_id>\d+)/$', views.topic, name='topic'),
    url(r'^new_topic/$', views.new_topic, name='new_topic'),

错误

ImportError: cannot import name 'views' from 'learning_log' (C:\Users\hhh\PycharmProjects\learning_log\learning_log\learning_log\__init__.py)

【问题讨论】:

  • 您可能跳过了为应用程序创建urls.py 的部分。您在此处分享的urls.py 属于项目,并且在include 声明中,您必须包含您的应用程序的urls.py。然后在应用程序的urls.py 中可以导入视图。

标签: python django


【解决方案1】:

这是因为当前文件夹没有任何views.py 文件。

from . import views 

这意味着您正在当前不可用的当前文件夹中寻找views.py。你可以试试这个:

from your_appname import views

【讨论】:

  • @Batoota 如果这不是您想要的,请分享您的目录截图;)
【解决方案2】:

知道了..它在当前位置运行良好,但显然我在当前项目中创建了一个模板目录,它改变了 views.py 的路径。我不得不将 views.py 重构为目录 learning_log 并且它起作用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 2021-06-30
    • 2020-10-19
    • 2018-08-13
    • 2015-01-26
    • 2020-10-10
    • 2020-02-12
    • 2021-11-27
    相关资源
    最近更新 更多