django 找不到视图...页面未找到错误

Ans*_*ngh 4 python django django-urls django-views

我正在尝试从视图打印响应..但 django 显示页面未找到错误(404)

我的主要 project.urls 是:-

from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.conf import settings
from . import views

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'ultimatefinalblog.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    url(r'^$',views.siteindex,name="siteindex"),
    url(r'^blog/', include('blog.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^markdown/', include('django_markdown.urls')),

)
Run Code Online (Sandbox Code Playgroud)

我博客的 urls.py 是:-

from django.conf.urls import patterns,  url
from blog import views

urlpatterns = patterns('',
    #url(r'^$', views.BlogIndex.as_view(), name="index"),
    #url(r'^(?P<slug>\S+)$', views.BlogDetail.as_view(), name="entry_detail"),
    #url(r'^$', views.testview, name="testview"),
    url(r'^$', views.index, name="index"),
    url(r'^(?P<slug>\S+)$', views.detail, name="entry_detail"),
    url(r'^testingpage/', views.testview, name='testview'),
    )
Run Code Online (Sandbox Code Playgroud)

我在 views.py 中定义了 testview 函数

def testview(request):
    return HttpResponse("testing our view!")
Run Code Online (Sandbox Code Playgroud)

当我尝试在我的开发服务器中运行 url 127.0.0.1:8000/blog/testingpage 时,它​​显示页面未找到错误......有人可以帮我解决这个问题吗?

kar*_*ikr 5

这是你的问题:

在您的网址格式中,

url(r'^(?P<slug>\S+)$', views.detail, name="entry_detail"),
url(r'^testingpage/', views.testview, name='testview'),
Run Code Online (Sandbox Code Playgroud)

testingpage正与匹配?P<slug>\S+(对于views.detail),之前views.testview,你可能有一个raise 404或代码类似的东西线匹配塞。

所以,改变顺序:

url(r'^testingpage/', views.testview, name='testview'),
url(r'^(?P<slug>\S+)$', views.detail, name="entry_detail"),
Run Code Online (Sandbox Code Playgroud)

它应该适合你。

此外,Slug 通常匹配(?P<slug>[\w-]+)而不是\S+