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