python笔记(web后端,Django,Session和Coolie)

1、CSRF
在这里插入图片描述
2、Cookie

  1. Cookie:的由来:

    因为HTTP请求没有状态,每一次请求都是独立的

  2. Cookie是什么?

    就是保存在浏览器上的键值对
    服务端控制着响应,在响应里可以让浏览器在本地保存(键值对)Cookie
    下一次请求在发送的时候就会自动携带这个Cookie值

  3. Cookie应用

    1、登陆,七天免登陆
    2、记录用户的浏览习惯
    3、简单的投票限制

  4. Cookie是服务端设置的,我们浏览器可以不让服务端设置Cookie

  5. Cookie默认关闭浏览器就失效

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可将设置Cookie封装成装饰器(类似于以下写法)

from functools import wraps
def login_wraps(f):
    @wraps(f)
    def inner(request,*args,**kwargs):
        ret = request
        ret1 = f(request,*args,**kwargs)
        if ret == '1':
            return ret1
        else:

            return 0
    return inner

@login_wraps
def func(request):

    print(request)
    return str(request) + 'k'
print(func('2'))

3、session

  1. Session是什么?

    是保存在服务端的键值对
    Session必须依赖于Cookie

     gjhfgjhdfgd;{'is_login':1,'user':'li'}
     dfsfdhshhsd;{'is_login':1,'user':'long'}
    
  2. 存session具体做的事儿:

    1、在服务端生成随机字符串
    2、生成一个和上面随机字符串对应的大字典,用来保存用户数据
    3、随机字符串当成cookie返回给浏览器

  3. 取session:

    1、从请求携带的Cookie里面找到随机字符串
    2、拿到随机字符串去session中找到对应大字典
    3、从大字典中根据key取值

  4. 优缺点

    优点:
    存数据多、安全性高
    缺点:
    数据量大,占资源

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
python中cookie和session的使用方法

	class Userinfo(views.View):
	    类的方法加装饰器
	    method_decorator('自己的装饰器')
	    def get(self,request):
	        ret = render(request,'test_test.html')
	        session请求
	        request.session['1'] = {'hame':1,'dd':2}
	        ret.set_signed_cookie('li','youxiu')
	        print(request.session.get('1')['dd'])
	        print(request.get_signed_cookie('li'))
	        return ret

猜你喜欢

转载自blog.csdn.net/qq_41433183/article/details/88205617
今日推荐