Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django URL优化_Django - Fatal编程技术网

django 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+

具有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+)/$', '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))