【问题标题】:Django URL Match Is Not WorkingDjango URL 匹配不起作用
【发布时间】:2015-03-02 16:29:31
【问题描述】:

我在访问以下网址时遇到错误找不到页面 (404)

http://localhost:8000/blog/blogroll/

我正在使用 Python 3.4 和 Django 1.7。

这是我的项目网址:

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

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'weblog.views.home', name='home'),
    url(r'^blog/', include('blog.urls', namespace='blog')),
    url(r'^admin/', include(admin.site.urls)),
)

这是我的应用程序“博客”的网址:

从 django.conf.urls 导入模式,url 从博客导入视图

urlpatterns = patterns('',
       url(r'^$', views.index, name='index'),
       url(r'^(?P<slug>\S+)$', views.detail, name='detail'),
       url(r'^blogroll/$', views.blogroll, name='blogroll'),
       #url(r'^(?P<question_id>\d+)/results/$', views.results, name ='results'),
       #url(r'^(?P<question_id>\d+)/vote/$', views.vote, name='vote'),
       )

除此之外,以下网址正在运行:

http://localhost:8000/blog/

我无法找出错误在哪里。请指教。

提前感谢您!

【问题讨论】:

    标签: python django django-urls django-1.7


    【解决方案1】:

    url(r'^blogroll/$', views.blogroll, name='blogroll'), 上移一行。

    /blog/anything 在您的 blogroll 规则有机会匹配之前匹配您的 (?P&lt;slug&gt;... 规则。

    您还应该在捕获组之外以/ 结束slug 正则表达式,因为django 倾向于喜欢以斜杠结尾的URL,如果使用\S+,您的变量将捕获/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-07
      • 2014-01-18
      • 2023-04-06
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多