获取 Django url 正则表达式中的多个参数
Posted
技术标签:
【中文标题】获取 Django url 正则表达式中的多个参数【英文标题】:Multiple Params in get Django url regex 【发布时间】: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 合作的第二天,如果我能获得良好的参考以阅读有关允许多个参数的实践,我将不胜感激。
【问题讨论】:
【参考方案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以上是关于获取 Django url 正则表达式中的多个参数的主要内容,如果未能解决你的问题,请参考以下文章