render是渲染變量到模板中,而redirect是HTTP中的1個跳轉的函數,一般會生成302狀態碼
redirect跳轉
from django.core.urlresolvers import reverse from django.shortcuts import redirect #https://docs.djangoproject.com/en/1.5/topics/http/shortcuts/ @login_required def update_time(request): #pass ... form處理 return redirect(reverse('commons.views.invoice_return_index', args=[])) #跳轉到index界面
HttpResponseRedirect(傳遞參數)
from django.shortcuts import render, HttpResponse from django.views.generic.base import View from django.http import HttpResponseRedirect # Create your views here. class user_login(View): def get(self, request): return render(request, "login.html") def post(self, request): if request.POST.get("username") == "alex": return HttpResponseRedirect("/timer/?name=alex") else: return render(request, "login.html") class timer(View): def get(self, request): print("--------------->", request.GET) name=request.GET.get("name") return render(request, "timer.html", {"name":name})