python--Django之cookie的设置、获取,加密,删除

为什么我们要设置cookie????

  1. 当我们在京东购物时,我们需要登录账号进入我们的购物车,那京东是如何区别每个用户的呢?原因就在于cookie,就像我们在超市购物,没有会员卡的时候,买完东西超市并不会保存我们的任何信息,如果我们使用会员卡,超市就会有我们的消费信息,cookie就像是会员卡,记录用户的一些信息。

cookie的用途

  1. 服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。
  2. 另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。
  3. 更重要的是,网站可以利用cookies跟踪统计用户访问该网站的习惯,比如什么时间访问,访问了哪些页面,在每个网页的停留时间等。利用这些信息,一方面是可以为用户提供个性化的服务,另一方面,也可以作为了解所有用户行为的工具,对于网站经营策略的改进有一定参考价值。

 cookie的设置

设置cookie之前我们先了解一下cookie,如下图,cookie以键值对的形式存在,

键和值以逗号分隔,不同的键值对以;(分号)隔开。

因此我们设置cookie时,也要以键值对的形式设置.

 

  1. 通过查看源代码我们可以知道cookie中可以设置的参数如下:
    def set_cookie(self, key, value='', max_age=None, expires=None,
                       path='/', domain=None, secure=False, httponly=False,
                       samesite=None):
    
    

    key:键
    value:值
    max_age:设置过期时间(秒),如果未设置默认关闭浏览器失效
    expires:设置过期时间,时间戳的形式(1970离现在的时间)
    path:当前主域名
    domain:子域名
    secure:True           true意味着"指示浏览器仅通过 HTTPS 连接传回 cookie。这可以确保 cookie ID 是安全的,且仅用于                                                  使用 HTTPS 的网站。如果启用此功能,则 HTTP 上的会话 Cookie 将不再起作用
    httponly=False         设置HttpOnly=true的cookie不能被js获取到,无法用document.cookie打出cookie的内容

                  实例:  

    response = HttpResponseRedirect('/index/')
    response.set_cookie('email',user.email,10)
    return response

     

cookie的获取  

  1. cookie的获取方法为:response.cookie.get('cookie设置的参数')

    下面我们通过一个装饰器来实现cookie的获取
    def loginValid(fun):
        def inner(request,*args,**kwargs):
            cookie = request.COOKIES
            email = cookie.get('email')
            if email:
                return fun(request,*args,**kwargs)
            else:
                return HttpResponseRedirect("/login/")
        return inner
    
    
    @loginValid
    def index(request):
        return render_to_response("index.html",locals())

     

cookie的删除

  1. cookie的删除方法为:response.delete_cookie方法,指定cookie的key,我们就可以删除cookie了
    def delete_cookie():
        response = HttpResponseRedirect('/index/')
        response.delete_cookie('username') #删除cookie
        return response

     

cookie的加密

  1. cookie的加密设置:与上面的cookie的设置相同,关键字不同
    response.set_signed_cookie('email',email,salt="salt")
  2. cookie的获取解密:与上面的cookie的获取相同,关键字不同
     
    responset.get_signed_cookie('email',email,salt="salt")


    cookie的加密和解密要对应相同的salt(盐值),这样才能确保网站的正常访问

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python-Django-Vue项目实战是一种常见的全栈发模式,结合了PythonDjango框架和Vue.js前端框架。下面是一个简单的介绍: Python-Django是一个强大的Web开发框架,它使用Python语言编写,提供了一系列的工具和库来简化Web应用程序的开发过程。Django具有高度的可扩展性和灵活性,可以帮助开发者快速构建功能丰富的Web应用。 Vue.js是一个流行的JavaScript前端框架,它专注于构建用户界面。Vue.js具有简单易学的语法和强大的功能,可以帮助开发者构建交互性强、响应迅速的前端应用。 在Python-Django-Vue项目实战中,通常会将Django作为后端框架来处理数据逻辑和业务逻辑,而Vue.js则负责前端页面的展示和用户交互。通过这种方式,可以实现前后端分离,提高开发效率和代码可维护性。 具体的项目实战可以包括以下内容: 1. 构建Django后端:使用Django框架创建后端应用程序,包括定义数据模型、编写视图函数、配置URL路由等。 2. 开发Vue前端:使用Vue.js框架创建前端应用程序,包括设计页面布局、编写组件、处理用户交互等。 3. 数据交互:通过RESTful API或GraphQL等方式,实现前后端数据的交互和通信。 4. 用户认证和权限管理:实现用户注册、登录、权限验证等功能,确保系统的安全性。 5. 数据库操作:使用Django的ORM(对象关系映射)来进行数据库操作,包括增删改查等。 6. 页面美化和响应式设计:使用CSS和Vue.js的样式绑定功能,实现页面的美化和响应式设计。 7. 部署和发布:将项目部署到服务器上,并进行性能优化和安全加固。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值