【问题标题】:Django url patternDjango 网址模式
【发布时间】:2010-11-30 14:55:33
【问题描述】:

这应该是一个简单的问题。我在 Django 中有两个 url 模式:

url(r'^wiki/page/(?P<page_title>.*)', views.wiki_view, name = 'wiki_view'),
url(r'^wiki/page/$', views.wiki_page_index, name = 'wiki_page_index'),

当我访问/wiki/page/test 时,它会将我带到views.wiki_view。这是对的。我需要第一个模式来捕获“page/”之后的所有字符,这就是我使用 .*

的原因

当我访问 /wiki/page/ 时,它也将我带到 views.wiki_view。这是不正确的。

我可以将第二个 url 模式更改为:

url(r'^wiki/page/$', views.wiki_page_index, name = 'wiki_page_index'),

因此,当我访问/wiki/page 时,它​​会将我带到views.wiki_page_index。但我宁愿解决问题而不是避免它。

如何格式化第一个 url 模式,以使其不会拾取 /wiki/page/ 的实例?

【问题讨论】:

    标签: django url


    【解决方案1】:

    将第一个改为:

    url(r'^wiki/page/(?P<page_title>.+)', views.wiki_view, name = 'wiki_view'),
    

    【讨论】:

      【解决方案2】:

      将第二个放在当前第一个之前。

      http://docs.djangoproject.com/en/dev/topics/http/urls/ (“Django 按顺序遍历每个 URL 模式,并在与请求的 URL 匹配的第一个模式处停止。”)

      【讨论】:

        猜你喜欢
        • 2020-01-09
        • 2017-03-05
        • 2014-01-20
        • 2018-10-26
        • 2014-01-24
        • 2011-06-03
        • 2021-08-07
        • 1970-01-01
        • 2015-09-21
        相关资源
        最近更新 更多