NameError:名称'hello_world'未定义

时间:2018-03-24 05:25:22

标签: django django-views nameerror

使用pycharm社区python3.6.2 Django 2.0.3

views.py

from django.http import HttpResponse

def hello_world(request):  
    return HttpResponse('Hello World')

urls.py

from django.conf.urls import url
from django.contrib import admin

from . import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', views, hello_world),

]

我试图搞清楚但却遗漏了一些东西。

在pycharm上运行时出现

错误

  

urls.py“,第8行,in         url(r'^ $',views,hello_world),

     

NameError:名称'hello_world'未定义

2 个答案:

答案 0 :(得分:2)

错误告诉您没有定义hello_world等变量。您需要将其更改为:

url(r'^$', views.hello_world)

views是您在顶部导入的视图模块。

答案 1 :(得分:0)

这行代码错误

url(r'^$', views, hello_world)

您刚刚导入了view文件view.py.现在你需要调用函数视图,它将是:

url(r'^$', views.hello_world)

你可能认为给这个url一个名字是有用的,这样你以后就可以在模板中用它作为参考。

url(r'^$', views.hello_world, name='hello-world')

此外,您可以导入view.py,如下所示:

from .views import hello_world

下一个是可能的,也可以在Niayesh Isky的评论中提出,但不鼓励。

from .views import *