cookie1与session的使用

#######cookie是存储在客服端上的一个文件(也可以说是键值对)
使用cookie来实现用户登入伪代码

def login(request):
    if request.method == "GET":
        return render(request,'login.html')
    if request.method == "POST":
        u = request.POST.get('username')
        p = request.POST.get('pwd')

        if """通过密码判断用户是否登入正确,如果正确进行下面的操作""":
            res = redirect('/index/')
            res.set_cookie('username111',u)
            res.set_cookie('cookie的key',"cookie的value")
            return res  #然后把cookie给客户端
        else:
            return render(request,'login.html')
下次访问其他页面的时候我们就可以通过request.COOKIES.get('上次cookie的key')来判断用户是否在服务器上有相应的值
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获取(不是绝对,底层抓包可以获取到也可以被覆盖)
	前端也可以获取到cookie
<script src='/static/js/jquery.cookie.js'></script>
$.cookie("list_pager_num", 30,{ path: '/' });
什么是session
session时放在服务端的(数据库,文件等等地方),我们可以把它看作一个大的字典(request.session),每个用户的随机字符串作为键,用户的信息作为值,一般来说单独用sesion是没意义的,一般是与cookie联合使用
session生成步骤:
	1.生成随机字符串
	2.想随机字符串写在cookie中
	3.把随机字符串写在session中
	4.在随机字符串对应的字典中写入值
在django中写request.session['用户信息']='值'就可以完成以上的所有操作
常用操作
request.session.get()获取值,获取字典的操作都可以使用
request.session.set_expiry() 设置超时时间
request.session.clear() 清除垃圾信息(比如过时信息)
在setting.py中常常对session进行的设置
SESSION_COOKIE_NAME = "sessionid"  # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认key是sessionid)
SESSION_COOKIE_PATH = "/"  # Session的cookie保存的路径(默认)
SESSION_COOKIE_DOMAIN = None  # Session的cookie保存的域名(默认)
SESSION_COOKIE_SECURE = False  # 是否Https传输cookie(默认)
SESSION_COOKIE_HTTPONLY = True  # 是否Session的cookie只支持http传输(默认)
SESSION_COOKIE_AGE = 1209600  # Session的cookie失效日期(2周)(默认)
SESSION_EXPIRE_AT_BROWSER_CLOSE = False  # 是否关闭浏览器使得Session过期(默认)
SESSION_SAVE_EVERY_REQUEST = False  # 是否每次请求都保存Session,默认修改之后才保存(默认)
实现30天免登录
 request.session.set_expiry(60*60*24*30)
 SESSION_SAVE_EVERY_REQUEST = True
原文地址:https://www.cnblogs.com/KingOfCattle/p/14312899.html