获取Django url正则表达式中的多个参数

时间:2016-01-13 17:09:09

标签: python regex django django-urls

我需要在网址中传递两个参数: 例如:http://127.0.0.1:8000/events/103,104/3/

这里

  • param1 = 103,104
  • param2 = 3

我使用的网址:

url(r'^events/(?P<categories_string>[^\/]*)/(?P<page_no>\d+)/$','main.views.events'),

我也尝试过:

url(r'^events/(?P<categories_string>.*)/(?P<page_no>\d+)/$','main.views.events'),

我的View.py:

def events(request, categories_string='', page_no=1):
    if categories_string =='':
        return render(request, "main/events.html", {'message' : 'string is null'})
    return render(request, "main/events.html", { 'message': {'cat' : categories_string, 'pg' : page_no}})

我的输出是:

{'cat': '103,104/3', 'pg': 1}

这是我与Django合作的第二天,如果能引导我阅读有关允许多个参数的实践,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的正则表达式最有可能与103,104/3匹配.*。假设您的猫输入总是像digits,digits那么以下应该有效:

url(r'^events/(?P<categories_string>\d+,\d+)/(?P<page_no>\d+)/$','main.views.events'),