如何在URL.py中为此创建正则表达式?

2024-09-30 14:36:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个与如下URL匹配的正则表达式

filmslist?name=allaboutmymother?director=pedroalmodovar

在urlpatterns中,我将以下内容:

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

但它不匹配。 提前谢谢


Tags: pathnameapiurlviewsdirectorurlpatternspedroalmodovar
2条回答

qyery string不是路径的一部分。您将需要在视图本身中解析它。在视图中,您可以使用request.GET访问参数,这是一种类似字典的结构,因此:

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

然后,在视图中,您可以使用以下工具检查值:

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

如果未在查询集中传递参数,则相应的namedirector将是None

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中只能是^{strong>一个?,并且参数需要用&分隔,因此您的url应该是filmslist?name=allaboutmymother&director=pedroalmodovar

相关问题 更多 >