【问题标题】:Multiple Params in get Django url regex获取 Django url 正则表达式中的多个参数
【发布时间】:2016-04-18 18:56:35
【问题描述】:

我需要在 url 中传递两个参数: 例如: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'),

我的视图.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 合作的第二天,如果我能获得良好的参考以阅读有关允许多个参数的实践,我将不胜感激。

【问题讨论】:

    标签: python regex django django-urls


    【解决方案1】:

    似乎您的正则表达式很可能将103,104/3.* 匹配。假设你的 cat 输入总是像 digits,digits 那么下面应该工作:

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

    【讨论】:

    • 实际上猫输入是数字或数字,数字或数字,数字,数字等等......所以根据你的回答我使用了这个:它似乎工作 url(r'^events/( ?P[\d+,]+)/(?P\d+)/$','main.views.events'),
    猜你喜欢
    • 2012-02-21
    • 2017-06-11
    • 2011-02-25
    • 2011-07-20
    • 2018-11-28
    • 1970-01-01
    • 2013-09-10
    • 2016-04-07
    • 2011-08-06
    相关资源
    最近更新 更多