django reverse()
时间:2010-04-03 来源:m4774411wang
你用django开发比较大的项目的时候,可能会想过让程序比较有好的维护性。
比如一些配置信息放在一个地方管理。如果要修改的时候,只要修改一个地方就可以了。
django的url一般会经常改变的。如果我们在views里做个处理,然后处理以后做跳转:
def haha(request):
..........
HttpResponseRedirect('list/member')
假设我们在url.py里是这样配置的:
(r^'list/member','haha')如果我们接到老板的需求,需要改下list/member,那如果时间比较紧的情况下,
你可能就会忘掉view里的HttpResponseRedirect('list/member')这样就会在老板面前出丑。哈哈。人是要面子的。
肯定是希望能够很帅的改动一个地方。然后就能生效django reverse()就这样出马了。。。。。
先看下他定义的规则:reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None)
再给个例子把: return HttpResponseRedirect(reverse('arch-summary', args=[1945]))
我们看了例子以后,马上趁热打铁的改下我们现在的代码。让代码写的更好。
HttpResponseRedirect('list/member')改成:HttpResponseRedirect(reverse('haha')) 这样只要haha这个方法名称没有改变的话,
下次只要改下url.py里list/member就可以了。
如果你觉的有什么方法更好的话。 欢迎给老王python留下言。我们一起来交流