在我的djang urls模式文件中,我想要保留一堆子url,但我不想让它变得难看。
我有一个处理所有Ajax请求的文件(根据请求输出不同的JSON文件。
示例(在我的url.py中):
形式:(网址,地图)
(ajax/do_a, ajax.do_a)
ajax/do_b, ajax.do_b)
ajax/do_c, ajax.do_c)
ajax/do_d, ajax.do_d)
这些都是子网址,例如。 mywebsite.com/ajax/do_a mywebsite.com/ajax/do_b 等
基本上do_a,do_b,do_c和do_d都是位于“ajax.py”文件中的相同的请求处理程序。我真的不想填写我的urls.py文件,其中包含所有这些URL的ajax请求。我想要移动它,以便我只有 AJAX / 在我的url.py文件中然后以某种方式解析我的请求处理程序中的ajax / request url(在ajax.py文件中),这样我就可以看到“ajax /”之后出现了什么字符串。我不知道该怎么做或者这样做是不是一个好主意....有人可以提供一些建议吗?谢谢:))
答案 0 :(得分:1)
您可以设置调度程序视图来处理这些问题。例如,在您的urls.py中:
(r'^ajax/do_(?P<do_token>(\d+))/$', 'do_dispatcher', {}, "di_dispatcher"),
然后,给自己一个处理它的观点:
def do_a(request):
pass
def do_b(request):
pass
def do_c(request):
pass
DO_LOOKUP = {
'a' = do_a,
'b' = do_b,
'c' = do_c,
}
def do_dispatch(request, do_token):
do_func = DO_LOOKUP.get(do_token, None)
if do_func is None:
return HttpResponseNotFound("No do could be found for token '%s'!" % do_token)
else:
return do_func(request)