• Python武器库开发-flask篇之session与cookie(二十六)


    flask篇之session与cookie(二十六)

    在 Flask 中,可以使用 session 来在不同请求之间存储和传递数据。Session 在客户端和服务器端之间交换,但是数据存储在服务器端。

    Session 与 Cookie 的区别

    session 和 cookie 都可以用来在不同请求之间存储和传递数据,但是它们有一些不同之处:

    1. 存储位置:session 是存储在服务器端的,而 cookie 是存储在客户端的。
    2. 安全性:session 比 cookie 更安全,因为数据存储在服务器端,客户端无法篡改。而
      cookie存储在客户端,如果数据没有加密或签名,那么客户端可以篡改 cookie 中的数据。
    3. 存储容量:session 可以存储更多的数据,因为数据存储在服务器端。而 cookie 的大小限制较小。

    在实际开发中,应根据需求来选择 session 或 cookie。如果需要存储一些敏感数据,那么应该使用 session 来保证安全性。如果只需要存储一些简单的数据,那么可以使用 cookie 来方便地在不同请求之间传递数据。

    使用Session

    要在 Flask 中使用 session,需要先安装 Flask-Session 扩展。安装方法如下:

    pip install flask-session
    
    • 1

    安装好后,在 Flask 中使用 session 就很简单了。首先,需要在 app 初始化中配置 session。例如:

    from flask import Flask
    from flask_session import Session
    
    app = Flask(__name__)
    app.config['SESSION_TYPE'] = 'filesystem'
    app.config['SECRET_KEY'] = 'mysecretkey'
    Session(app)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    这个例子中,我们指定了 session 存储的类型是文件系统,也可以使用其他的存储类型(例如 redis)。SECRET_KEY 是用来签名 session 数据的密钥,所以必须设置它。

    在代码中使用 session 也很简单。可以像使用字典一样来操作 session。例如:

    这个例子中,我们将一个 key 为 ‘username’,value 为 ‘admin’ 的数据存储到了 session 中。

    #!/usr/bin/env python3
    
    from flask import Flask
    from flask import session
    
    app.secret_key='kdjklfjk87384hjdhjh'
    
    @app.route('/')
    def index():
        return 'Hello World!'
    
    @app.route('/set_session')
    def set_seesion():
        #设置session持久化
        session.permanent = True
        session['username'] = 'admin'
        return '成功设置 session'
    
    @app.route('/get_session')
    def get_session():
        value = session.get('username')
        return '成功获取seesion的值为 {}'.format(value)
    
    if __name__ == '__main__':
        app.run(debug=True)
    
    • 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

    然后通过 get_session 这个函数去获取我们之前存在session 中的value值

    保存这些代码,接下来我们去运行这个脚本

    python3 app.py
    
    • 1

    在这里插入图片描述

    任意浏览器输入URL地址:http://127.0.0.1:5000/set_session ,如图成功设置我们的 seesion

    在这里插入图片描述

    浏览器输入URL地址:http://127.0.0.1:5000/get_session ,如图成功获得我们设置的 seesion 的value值

    在这里插入图片描述

    使用Cookie

    在 Flask 中,可以使用 cookie 来在客户端和服务器端之间交换数据。与 session 不同的是,cookie 是存储在客户端的。使用 cookie 可以方便地在不同请求之间传递数据。

    在 Flask 中使用 cookie 也很简单。可以使用 Response 对象的 set_cookie 方法来设置 cookie,例如:

    #!/usr/bin/env python3
    from flask import Flask, Response
    
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        return 'Hello World!'
    
    @app.route('/set_cookie')
    def set_cookie():
        resp = Response('Hello, World')
        resp.set_cookie('username', 'admin')
        return resp
       
    if __name__ == '__main__':
        app.run(debug=True)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    保存这些代码,接下来我们去运行这个脚本

    python3 app.py
    
    • 1

    在这里插入图片描述

    浏览器输入URL地址:http://127.0.0.1:5000/set_cookie,这个例子中,我们在返回的响应中设置了一个名为 ‘username’,值为 ‘admin’ 的 cookie。

    在这里插入图片描述

    在 Flask 中读取 cookie 也很简单。可以使用 request 对象的 cookies 属性来获得所有的 cookies,例如:

    #!/usr/bin/env python3
    from flask import Flask, request, Response
    
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        return 'Hello World!'
    
    @app.route('/set_cookie')
    def set_cookie():
        resp = Response('Hello, World')
        resp.set_cookie('username', 'admin')
        return resp
    @app.route('/get_cookie')
    def get_cookie():
        username = request.cookies.get('username')
        return f'Hello, {username}'
    
    if __name__ == '__main__':
        app.run(debug=True)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    保存这些代码,接下来我们去运行这个脚本

    python3 app.py
    
    • 1

    在这里插入图片描述

    浏览器输入URL地址:http://127.0.0.1:5000/get_cookie,这个例子中,我们通过 request 对象的 cookies 属性来获取名为 ‘username’ 的 cookie,并将其值作为响应返回。

    在这里插入图片描述

  • 相关阅读:
    业务层、过滤器
    学院打卡第十天
    大数据技术发展史
    八大排序-python
    【Koltin Flow(二)】Flow操作符之末端操作符
    React.FC(函数式组件)与React.Component(类组件)使用和区别
    BAT032:批量替换当前目录下文件的部分字符
    【读书笔记->数据分析】02 数据分析准备
    登录测试用例
    辅助驾驶功能开发-功能对标篇(2)-NGP领航辅助系统-小鹏
  • 原文地址:https://blog.csdn.net/qq_64973687/article/details/134487672