from django.shortcuts import render, redirect from django.shortcuts import HttpResponse from django.views import View from app02 import models from django.utils.safestring import mark_safe # Create your views here. user = { ‘username‘: ‘zmd‘, ‘password‘: ‘123‘ } class Login(View): def get(self,request): return render(request,‘app02_cookie_login.html‘) def post(self,request): u = request.POST.get(‘username‘) p = request.POST.get(‘pwd‘) if u != user.get(‘username‘): return render(request,‘app02_cookie_login.html‘) if p == user.get(‘password‘): res = redirect(‘/database_study/index/‘) res.set_cookie(‘username‘,u) return (res) else: return render(request,‘app02_cookie_login.html‘) class Index(View): def get(self,request): current_user = request.COOKIES.get(‘username‘) if not current_user: return redirect(‘/database_study/login/‘) else: return render(request,‘app02_cookie_index.html‘, {‘current_user‘:current_user})
response = redirect(‘/database_study/index/‘) response = render(request,‘app02_cookie_index.html‘) response = HttpResponse(‘xxxxx‘)
response.set_cookie(‘username‘,u)
可以设置的内容有
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获取(不是绝对,底层抓包可以获取到也可以被覆盖)
expires超时时间设置:
import datetime current_time = datetime.datetime.now() expire_time = current_time + datetime.timedelta(seconds=5) print(current_time) print(expire_time) response.set_cookie(‘username‘, u, expires=expire_time)
原文:https://www.cnblogs.com/zhangmingda/p/13340551.html