基于django开发框架种cookie05-23上
基于代码:
def login(request): return render(request,"home.html") #给用户一个静态页
@api_view(["POST"])#有页面返回了所以去掉getdef api_login(request): username = request.POST.get("username") pwd = request.POST.get("password") if username is not None and pwd is not None: if username ==‘admin‘and pwd == "admin": return render(request,"home.html",context={"username":username}) else: return render(request, "error.html", context={"msg": "用户名和密码错误"}) else: return render(request,"error.html",context={"msg":"用户名和密码必填"})响应回种cookie 请求携带cookie新内容:响应回种cookie,HttpResponse的方法:
第一个方法:中cookieHttpResponse().set_cookie()#通过响应的cookie回种cookie给请求 这样下次请求就可以带上cookie需求 登录成功后返回页面 页面携带一个cookie uuid
def login(request): return render(request,"home.html")
@api_view(["POST"])def api_login(request): username = request.POST.get("username") pwd = request.POST.get("password") if username is not None and pwd is not None: if username ==‘admin‘and pwd == "admin": res = render(request,"home.html",context={"username":username})#返回的url还是login res.set_cookie(‘uuid‘,‘1‘) return res else: return render(request, "error.html", context={"msg": "用户名和密码错误"}) else: return render(request,"error.html",context={"msg":"用户名和密码必填"})
验证效果:127.0.0.1:8000/user/api/login 检查下application-cookies需求二:登录成功后 实现返回首页 用重定向到首页 引入HttpResponseRedirect
from django.http import HttpResponse,JsonResponse,HttpResponseRedirect(状态码)
user/urls文件增加home.htm页面
from django.urls import pathfrom users import viewsurlpatterns = [ path(‘hello/‘, views.hello), path(‘login/‘,views.login), path(‘home/‘,views.home),#增加的页面 path(‘api/login/‘,views.api_login), path(‘api/logout/‘,views.api_logout)]user/views文件增加home请求
def home1(request): return render(request,‘home.html‘)
@api_view(["POST"])def api_login(request): username = request.POST.get("username") pwd = request.POST.get("password") if username is not None and pwd is not None: if username ==‘admin‘and pwd == "admin": res = HttpResponseRedirect(‘/user/home’)#重定向到首页 res.set_cookid(‘uid‘,‘‘1)#种cookie return res
else: return render(request, "error.html", context={"msg": "用户名和密码错误"}) else: return render(request,"error.html",context={"msg":"用户名和密码必填"})需求三:返回home首页的时候,home接口需要判断登录状态 cookie是否存在;有就在首页 没有就回到登录 未设置cookie失效实际 默认关闭浏览器cookie失效
def home1(request): if request.COOKIES.get(‘uid‘) ==‘1‘: return render(request,‘home.html‘) else: return HttpResponseRedirect(‘/user/login’)
@api_view(["POST"])def api_login(request): username = request.POST.get("username") pwd = request.POST.get("password") if username is not None and pwd is not None: if username ==‘admin‘and pwd == "admin": res = HttpResponseRedirect(‘/user/home’)#重定向到首页 res.set_cookid(‘uid‘,‘‘1)#种cookie return res
else: return render(request, "error.html", context={"msg": "用户名和密码错误"}) else: return render(request,"error.html",context={"msg":"用户名和密码必填"})
需求三:上面cookies没加密