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 时,它显示页面未找到错误......有人可以帮我解决这个问题吗?
这是你的问题:
在您的网址格式中,
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+