cookie:
理解为客户端浏览器上的一个文件
类似字典存储{‘k‘:‘v‘ }
基于cookie做用户验证时,敏感信息不适合放在cookie中
1、获取Cookie: request.COOKIES[‘key‘] request.get_signed_cookie(key, default=RAISE_ERROR, salt=‘‘, max_age=None) 参数: default: 默认值 salt: 加密盐 max_age: 后台控制过期时间 2、设置Cookie: rep = HttpResponse(...) 或 rep = render(request, ...) rep.set_cookie(key,value,...) rep.set_signed_cookie(key,value,salt=‘加密盐‘,...) 参数: key, 键 value=‘‘, 值 max_age=None, 超时时间 expires=None, 超时时间(IE requires expires, so set it if hasn‘t been already.) path=‘/‘, Cookie生效的路径,/ 表示根路径,特殊的:跟路径的cookie可以被任何url的页面访问 domain=None, Cookie生效的域名 secure=False, https传输 httponly=False 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)
session:
理解为保存在服务器文件,是一个字典格式。
这是view中的session的基本操作
from django.shortcuts import render,redirect,HttpResponse # Create your views here. def login(request): if request.method==‘GET‘: return render(request,‘login.html‘) elif request.method == ‘POST‘: user=request.POST.get(‘user‘) pwd=request.POST.get(‘password‘) if user ==‘root‘ and pwd==‘123‘: #生成随机字符串 #写到用户浏览器cookie #保存至session中 #在随机字符串对应的字典中设置相关内容 request.session[‘username‘]=user request.session[‘is_login‘]=True return redirect(‘/index/‘) else: return render(request,‘login.html‘) def index(request): #获取当前用户的随机字符串 #根据随机字符串获取对应信息 #session中获取值 if request.session[‘is_login‘]: #输出登录账户 return HttpResponse(request.session[‘username‘]) # return HttpResponse(‘OK‘) else: return HttpResponse(‘滚‘)
#生成表和
python manage.py makemigrations 生成默认的表
python manage.py migrate
原文:https://www.cnblogs.com/anhao-world/p/14679178.html