首页 > 解决方案 > 如何在 urls.py 中为此创建正则表达式?

问题描述

我想创建一个匹配这样的网址的正则表达式

filmslist?name=allaboutmymother?director=pedroalmodovar

在 urlpatterns 中,我放了这个:

path('api/filmslist\?name=?P<name>(.*)\?director=?P<director>(.*)', views.filmslist)

但它不匹配。提前致谢

标签: pythondjangoregexdjango-rest-framework

解决方案


url 中第一个之后的所有?内容都是查询字符串,不参与模式匹配。所以如果你的 url 是这样的,filmslist?name=allaboutmymother?director=pedroalmodovar那么你的 url 模式应该是这样的:

path('api/filmslist', views.filmslist)

现在要在您的视图中获取这些参数,您可以执行以下操作:

def filmslist(request):
    name = request.GET.get('name')
    director = request.GET.get('director')
    ...

同样正如@Code-Apprentice在他们的评论中指出的那样,它们应该只 ?url 中有一个,并且参数需要用 an 分隔,&因此您的 url 应该是filmslist?name=allaboutmymother&director=pedroalmodovar


推荐阅读