• 【flask入门系列】Cookie与Session


    📋 个人简介

    • 💖 作者简介:大家好,我是阿牛,全栈领域新星创作者。😜
    • 📝 博主的个人网站:阿牛的博客小屋🔥
    • 🎉 支持我:点赞👍+收藏⭐️+留言📝
    • 📣 系列专栏:flask框架快速入门🍁
    • 💬格言:要成为光,因为有怕黑的人!🔥
      请添加图片描述

    前言

    今天我总结一下flask中的cookie与session,flask中的session和正常的session是不一样的,为浏览器session,保存在浏览器。

    cookie

    1.设置cookie

    #导入Flask类和request对象
    from flask import Flask,make_response
    app = Flask(__name__)
    
    # 从配置对象中加载的默认配置
    class DefaultConfig(object):
        SECRET_KEY = 'jstwn63bng'
        DEBUG = True
        ENV = 'development'
    
    app.config.from_object(DefaultConfig)
    
    @app.route('/cookie')
    def cookie():
        resp = make_response("设置cookie")
        resp.set_cookie("aniu","handsome")
        return resp
    
    # Flask应用程序的run方法启动web服务器
    if __name__ == '__main__':
        app.run(port=8000)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    在这里插入图片描述

    2.设置cookie有效期

    @app.route('/cookie')
    def cookie():
        resp = make_response("设置cookie")
        resp.set_cookie("aniu","handsome",max_age=4000)  #max_age为最大过期时间的毫秒数
        return resp
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.获取cookie

    #导入Flask类和request对象
    from flask import Flask,make_response,request
    app = Flask(__name__)
    
    # 从配置对象中加载的默认配置
    class DefaultConfig(object):
        SECRET_KEY = 'jstwn63bng'
        DEBUG = True
        ENV = 'development'
    
    app.config.from_object(DefaultConfig)
    
    #设置cookie
    @app.route('/set_cookie')
    def set_cookie():
        resp = make_response("设置cookie")
        resp.set_cookie("aniu","handsome")
        return resp
    
    
    #获取cookie
    @app.route('/get_cookie')
    def get_cookie():
        resp = request.cookies.get('aniu')
        return resp
    
    # Flask应用程序的run方法启动web服务器
    if __name__ == '__main__':
        app.run(port=5000)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    在这里插入图片描述

    4.删除cookie

    @app.route('/delete_cookie')
    def delete_cookie():
        resp = make_response("设置cookie")
        resp.delete_cookie("aniu","handsome")
        return resp
    
    • 1
    • 2
    • 3
    • 4
    • 5

    session

    注意:需要先设置SECRET_KEY,为什么呢?我们在前言中说过,flask中的session是浏览器session,保存在浏览器,因此需要一个密钥。

    #导入Flask类和request对象
    from flask import Flask,session
    app = Flask(__name__)
    
    # 从配置对象中加载的默认配置
    class DefaultConfig(object):
        SECRET_KEY = 'jstwn63bng'
        DEBUG = True
        ENV = 'development'
    
    app.config.from_object(DefaultConfig)
    
    #设置session
    @app.route('/set_session')
    def set_session():
        session['username'] = 'aniu'
        return 'set session ok'
    
    #读取
    @app.route('/get_session')
    def get_session():
        username = session.get('username')
        return 'get session username {}'.format(username)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    在这里插入图片描述
    在这里插入图片描述
    思考:flask将session保存到哪里了?

    在django中,对于session的保存,在数据库中会有一张专门的表去保存session数据,而我们flask中的session在上面说过,其实是一种浏览器session,他保存在浏览器。
    在这里插入图片描述>所以,放到浏览器之后就会有安全问题,因此就必须加一个“签名”,只有是我自己“签名”的才行,你拿过去修改后不能用。那如何保证这个签名是我自己的呢,就离不开我们的SECRET_KEY了。因此你看到的session中的内容可以说是“被加密”了。

    结语

    如果你觉得博主写的还不错的话,可以关注一下当前专栏,博主会更完这个系列的哦!也欢迎订阅博主的其他好的专栏。

    🏰系列专栏
    👉软磨 css
    👉硬泡 javascript
    👉前端实用小demo
    更多专栏请移步博主主页查看! 📝 博主的个人网站也很有趣,可以光顾一下哦:阿牛的博客小屋 🔥

  • 相关阅读:
    试用copilot过程中问题解决
    绿联搭建rustdesk服务器
    mysql-4-锁机制
    计算机毕业设计JavaNBA篮球资讯网(源码+系统+mysql数据库+lw文档)
    android 13.0 SystemUI导航栏添加虚拟按键功能(一)
    typeScript常用类型(二)
    深入理解JVM虚拟机第十一篇:详细介绍JVM中运行时数据区
    设计模式-中介者模式
    VR全景广告:让消费者体验沉浸式交互,让营销更有趣
    大规模神经网络的实现(什么是异步梯度下降?怎样进行模型压缩?)
  • 原文地址:https://blog.csdn.net/qq_57421630/article/details/125537251