【问题标题】:ImportError: cannot import name views while running the serverImportError:在运行服务器时无法导入名称视图
【发布时间】:2019-07-14 23:51:54
【问题描述】:

我收到以下错误,不知道如何解决:

从 .导入视图

ImportError: 无法导入名称视图

这是我正在使用的脚本:

urls.py

from django.conf.urls import url

from django.contrib import admin

from . import views

urlpatterns = [

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

views.py

from __future__ import unicode_literals

from django.http import HttpResponse


def index(request):

    return HttpResponse("libaray management system")

【问题讨论】:

  • 你能展示你的项目目录结构吗?
  • 如果没有您的目录结构,您的问题将无法正确回答。请注意,如果urls.py 是根 url 而views 在应用程序内,那么您必须使用 Headmaster 的解决方案 - 相对导入(“from .import XXX”)用于包内导入(参见 Headmaster 上的 cmets回答)。

标签: django python-2.7


【解决方案1】:

尝试像这样导入

from your_app_name import views

我不能说,你的项目结构是什么,你的 views.py 和 urls.py 文件在哪里。我的猜测是,您的导入方式存在一些问题(检查 python 中的绝对和相对导入)。在这种情况下,您可以使用上述代码示例中的导入样式。

【讨论】:

  • op 的语法完全合法并且(至少据我们所知)正确使用。
  • @brunodesthuilliers - 如果你不知道项目结构,你怎么知道这个?
  • 如果这是项目级别的 url——它似乎是,因为它包括管理员——几乎可以肯定该级别没有 views.py,所以这个答案似乎是正确的。
  • @Headmaster 这就是为什么我写了“至少据我们所知”并投票结束缺少 MCVE 的问题。
  • @Headmaster 这就是我们不同意的地方。您认为您的回答很有帮助,我认为这不是因为它没有解释为什么您认为他“应该这样导入”。即使提议的解决方案确实有效,OP 和阅读此答案的任何人都不会理解为什么这可以解决问题,因此您实际上是在鼓励货物崇拜编程......
猜你喜欢
  • 2017-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-03
  • 2015-03-27
  • 2020-09-10
相关资源
最近更新 更多