django URL优化
具有2个请求参数的URL:django URL优化,django,Django,具有2个请求参数的URL: /前缀1/1/ /前缀x2/2/ /prefix1/1/prefix2/2 /prefix2/2/prefix1/1 url( ur'^prefix1/(?P<p1>\d+)/$', 'app.views.view' ), url( ur'^prefix2/(?P<p2>\d+)/$', 'app.views.view' ), url( ur'^prefix1/(?P<p1>\d+)/prefix2/(?P<p2>\d+
/前缀1/1/
/前缀x2/2/
/prefix1/1/prefix2/2
/prefix2/2/prefix1/1
url( ur'^prefix1/(?P<p1>\d+)/$', 'app.views.view' ),
url( ur'^prefix2/(?P<p2>\d+)/$', 'app.views.view' ),
url( ur'^prefix1/(?P<p1>\d+)/prefix2/(?P<p2>\d+)/$', 'app.views.view' ),
url( ur'^prefix2/(?P<p2>\d+)/prefix1/(?P<p1>\d+)/$', 'app.views.view' ),
url(ur“^prefix1/(?P\d+/$”,“app.views.view”),
url(ur“^prefix2/(?P\d+/$”,“app.views.view”),
url(ur“^prefix1/(?P\d+)/prefix2/(?P\d+)/$”,“app.views.view”),
url(ur“^prefix2/(?P\d+)/prefix1/(?P\d+)/$”,“app.views.view”),
有没有可能做得更“枯燥”(使用3个请求参数,
url.py
=15中的行)?我拼凑了一个示例,如果lazerscience的评论不适合你,下面是我的想法:
url(r'^(?P<param1>foo|bar)(/(?P<param2>\d+))?(/(?P<param3>\d+))?(/(?P<param4>\d+))?/$', 'demo.views.view'),
正如您所期望的那样,它在您添加到url时从左到右逐步添加参数。不完全是这样,您忘记了
前缀
,看不,我没有。我假设您知道的足够多,能够从上面的foo | bar
示例表达式推导出一个等价的前缀。
def view(request, *args, **kwargs):
return render_to_response("index.html",
{ 'dict': [(k, v) for k,v in kwargs.iteritems()] },
context_instance=RequestContext(request))