Skip to main content
 首页 » 编程设计

python之Django:在 url 中匹配除正斜杠之外的任何内容

2025年04月02日47zlslch

我遇到的问题是:

url(r'^books/(.*?)/$', views.list_books), 
url(r'^books/(.*?)/availability/$', views.book_availability), 

我一直使用 (.*?) 来匹配任何内容,但在这种情况下它不起作用,因为它无论如何都匹配第一个模式。基本上我想让这个工作:books/A56/availability,但是 A56/availability 匹配 books/(.*?)/$ 和不像它应该的那样 books/(.*?)/availability/$。

我将如何匹配它?我想我想要的是“匹配任何东西,直到向前冲刺”或类似的东西。

请您参考如下方法:

如 documentation 中所述:

Django runs through each URL pattern, in order, and stops at the first one that matches the requested URL.

所以你应该把第二个模式放在第一个或name your url patterns之前

urlpatterns = [ 
    url(r'^books/(.*?)/availability/$', views.book_availability), 
    url(r'^books/(.*?)/$', views.list_books), 
]