使用正确的路由文件和设置仍然无法在Django上找到404页面

时间:2016-08-17 04:52:24

标签: python django

我正在浏览民意调查Django教程并搜索了这个问题的答案。到目前为止:

  1. 我确定我使用的是正确的目录。主要的urls.py在mysite / mysite /中,民意调查urls.py在mysite / polls / urls.py中。

  2. 尝试在mysite / mysite的settings.py中将'polls'添加到INSTALLED_APPS。

  3. 我确定我要求127.0.0.1:8000/polls而不是127.0.0.1:8000

  4. 我使用的是Python 3.4和Django 1.9,与教程相同。

  5. 我仍然收到此消息:

    Page not found (404)
    Request Method: GET
    Request URL:    http://127.0.0.1:8000/polls
    Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order:
    ^polls/
    ^admin/
    The current URL, polls, didn't match any of these.
    

    mysite的/ mysite的/ urls.py

    from django.conf.urls import include, url
    from django.contrib import admin
    
    urlpatterns = [
        url(r'^polls/', include('polls.urls')),
        url(r'^admin/', admin.site.urls),
    ]
    

    mysite的/轮询/ urls.py

    from django.conf.urls import url
    from . import views
    
    urlpatterns = [
        url(r'^%', views.index, name='index'),
    ]
    

    mysite的/轮询/ views.py

    from django.shortcuts import render
    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse("Hello, world")
    

2 个答案:

答案 0 :(得分:0)

polls/urls.py中 将url(r'^%', views.index, name='index')更改为url(r'^$', views.index, name='index')

同样在您的urls.py中,您有127.0.0.1:8000/polls/的路线,并且您要求127.0.0.1:8000/polls。注意尾随斜杠。

所以你应该向127.0.0.1:8000/polls/申请。

APPEND_SLASH = True文件中添加settings.py,以便将127.0.0.1:8000/polls重定向到127.0.0.1:8000/polls/

答案 1 :(得分:0)

所以我用你的urls.py尝试了你的索引视图。 它有效,唯一不同的是你的“请求URL,你必须要求 - 127.0.0.1:8000/polls /%

将您的网址更改为

url('^ /%',index) - 轮询URLs.py url('^ polls',include('polls.urls')) - 项目网址

这样可行。