在使用Django进行开发时,HttpResponseRedirect算是用的比较广泛的,对于一些已有url,相较于使用render有时可以极大减少代码量,下面是我学习并总结的一些使用方法。
以下面urls.py为例
from django.conf.urls import url
import app_one.main
urlpatterns = [
url(r'^index_one/$', app_one.main.index_one,name='index_one'),
url(r'^index_two/(?P<view_id>\d+)/$', app_one.main.index_two,name='index_two'),
url(r'^index_three/(?P<view_id>\d+)/(?P<user_id>\d+)/$', app_one.main.index_three,name='index_three'),
]
main.py文件
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
def response_one(request):
...
return HttpResponseRedirect('/index_one/')
#用下面这行也可以
#return HttpResponseRedirect(reverse('index_one'))
def response_two(request):
...
return HttpResponseRedirect(reverse('index_two', args=[vid]))
def response_three(request):
...
return HttpResponseRedirect(reverse('index_three', kwargs={'view_id':vid, 'user_id':uid}))
分别对应无参数、一个参数、多个参数的使用情况。