如何自己做网站模版,电子商务和市场营销的区别,广州模板网站,郑州市网站Django之Cookie 目录 Django之Cookie介绍Django操作Cookie设置Cookie浏览器查看Cookie 获取Cookie设置超时Cookie注销Cookie 模拟登录验证登录验证装饰器登录验证装饰器-升级版 介绍
当我们上网使用社交媒体或者购物时#xff0c;浏览器需要通过一种方式来记住我们。想象一下…Django之Cookie 目录 Django之Cookie介绍Django操作Cookie设置Cookie浏览器查看Cookie 获取Cookie设置超时Cookie注销Cookie 模拟登录验证登录验证装饰器登录验证装饰器-升级版 介绍
当我们上网使用社交媒体或者购物时浏览器需要通过一种方式来记住我们。想象一下你进入一家商店店员会将一张带有身份信息的会员卡片递给你并让你每次进店时都将卡片带在身上这张小卡片就是Cookie
Cookie是由服务器发送到用户的浏览器中的小型文本文件它存储在用户的计算机上方便用户每次访问同一个浏览器页面时能够让服务器对其识别
Django操作Cookie
三板斧中的redirect HttpResponse render对象都可以操作Cookie
设置Cookie
def test(request):# response设置为响应对象response HttpResponse()# 为该对象绑定Cookie并赋值response.set_cookie(name,Paul)# 将有Cookie的响应对象返回给web端return response浏览器查看Cookie 获取Cookie
def test2(request):my_cookie request.COOKIES.get(name)print(my_cookie)return HttpResponse(ok)# 输出Paul设置超时Cookie
# 设置超时Cookie
def test(request):response HttpResponse()response.set_cookie(name, Paul,max_age5)return response# 间隔五秒获取两次Cookie
def test2(request):my_cookie request.COOKIES.get(name)print(my_cookie)time.sleep(5)print(my_cookie)return HttpResponse(ok)# 输出Paul
# None注销Cookie
def test2(request):# 将浏览器重定向的同时注销Cookieresponse redirect(home)response.delete_cookie(name)return response模拟登录验证
def test(request):form_obj UserForm()user request.POST.get(user)pwd request.POST.get(pwd)if user 123123 and pwd 123123:response HttpResponse(登录成功)response.set_cookie(user,123123)return responsereturn render(request,app01/register.html,locals())def test2(request):response redirect(home)if request.COOKIES.get(user):return responsereturn HttpResponse(请先登录)登录验证装饰器
def check_cookie(func):def inner(request, *args, **kwargs):if request.COOKIES.get(user):res func(request, *args, **kwargs)return reselse:return HttpResponse(请先登录)return innercheck_cookie
def test2(request):response redirect(home)return render(request, app01/home.html)登录验证装饰器-升级版
def login(request):form_obj UserForm()user request.POST.get(user)pwd request.POST.get(pwd)if user 123123 and pwd 123123:# 获取Cookie后直接重定向到url中next的路由如果没有则返回homeresponse redirect(request.GET.get(next, home))response.set_cookie(user, 123123)return responsereturn render(request, app01/register.html, locals())def check_cookie(func):def inner(request, *args, **kwargs):target_url request.get_full_path()if request.COOKIES.get(user) 123123:res func(request, *args, **kwargs)return reselse:return redirect(f/app01/test/?next{target_url})return innercheck_cookie
def home(request):return HttpResponse(这里是home界面)