【问题标题】:Why is the first "hello world" example in the django book not working?为什么 django 书中的第一个“hello world”示例不起作用?
【发布时间】:2013-09-13 09:03:59
【问题描述】:

我正在(尝试)按照 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 上都试过了。这个问题的可能根源是什么?

【问题讨论】:

  • 你试过浏览到http://127.0.0.1:8000/hello/吗?

标签: python regex django django-urls


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 2011-09-12
      • 1970-01-01
      • 2012-05-25
      相关资源
      最近更新 更多