我正在尝试通过遵循Django书来学习Django for python 2.7,但在尝试配置views.py和urls.py时仍然坚持使用hello world示例。我基本上逐行复制了所有内容,但在访问本地测试服务器时仍然遇到相同的404错误:
Request Method: GET Request URL: http://127.0.0.1:8000/ Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order: ^hello/$ The current URL, , didn't match any of these.
我在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,它永远不会起作用。我已经尝试过无数种你好的变种而没有成功。我还可以补充一点,我已经在Linux和Windows上尝试过了。什么可能是这个问题的根源?
答案 0 :(得分:4)
404
的原因是http://127.0.0.1:8000/
中的urlpatterns
页面没有匹配的正则表达式:
urlpatterns = patterns('',
url('^hello/$', hello)
)
^hello/$
正则表达式仅匹配http://127.0.0.1:8000/hello/
网址。
答案 1 :(得分:3)
您正在为/hello
定义一个网址,但实际上您并没有访问该网址,而是访问/
。您需要在浏览器的地址栏中实际使用“hello”。