3

我正在(尝试)通过遵循 Django 书来学习 Django for python 2.7,但是在尝试配置 views.py 和 urls.py 时仍然坚持使用 hello world 示例。我基本上已经逐行复制了所有内容,但是当我访问本地测试服务器时仍然得到相同的 404 错误:

请求方法:GET
请求网址:http://127.0.0.1:8000/

使用 mysite.urls 中定义的 URLconf,Django 按以下顺序尝试了这些 URL 模式:

    ^你好/$

当前 URL 与其中任何一个都不匹配。

我在 views.py 中的代码如下所示:

from django.http import HttpResponse

def hello(request):
     return HttpResponse("Hello world")

和 urls.py:

from django.conf.urls import patterns, include, url
from mysite.views import hello

urlpatterns = patterns('',
                       url('^hello/$', hello)
                       )

当我只对 url() 函数中的第一个正则表达式参数使用“^$”时,它可以工作。但是每当我尝试将它与正则表达式匹配时,就像上面的那个,它应该匹配 hello() 中的 HttpResponse 它永远不会工作。我尝试了无数种 hello 的变体,但都没有成功。我还可以补充一点,我在 Linux 和 Windows 上都试过了。这个问题的可能根源是什么?

4

2 回答 2

4

原因是您的页面中404没有匹配的正则表达式:http://127.0.0.1:8000/urlpatterns

urlpatterns = patterns('',
                       url('^hello/$', hello)
                       )

^hello/$正则表达式仅匹配http://127.0.0.1:8000/hello/url。

于 2013-09-09T19:42:01.033 回答
3

您正在定义一个 URL,/hello但实际上并没有访问该 URL,而是要访问/. 您需要在浏览器的地址栏中实际使用“hello”。

于 2013-09-09T19:47:13.470 回答