基于django开发框架种cookie05-23上
Posted qd1228
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于django开发框架种cookie05-23上相关的知识,希望对你有一定的参考价值。
基于代码:
def login(request):
return render(request,"home.html") #给用户一个静态页
@api_view(["POST"])#有页面返回了所以去掉get
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":
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 path
from users import views
urlpatterns = [
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没加密
以上是关于基于django开发框架种cookie05-23上的主要内容,如果未能解决你的问题,请参考以下文章
Django基于PythonWeb的Django框架设计实现天天生鲜系统-6Django中Cookie存取
在 django db + 基于缓存的会话上使用 django 签名的 cookie 会话的性能比较?