• 关于Flask高级_session的操作


    Flask高级_session的操作

    一.介绍

    Session和Cookie的作用有点类似,都是为了存储用户相关的信 息,都是为了解决http协议无状态的这个特点。 不同的是Cookie保存在客户端浏览器中,而Session保存在服务器 上。
    客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式 记录在服务器上。
    客户端浏览器再次访问时只需要从该Session中查找该客户的状态就 可以了。
    注意
    不同的语言,不同的框架,有不同的实现。
    虽然底层的实现不完全一样,但目的都是让服务器端能方便的 存储数据而产生的。
    Session的出现,是为了解决cookie存储数据不安全的问题的。
    如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份 的话, 那么Session机制就是通过检查服务器上的“客户明细表”来确认客户 身份。
    Session相当于程序在服务器上建立的一份客户档案,客户来访的 时候只需要查询客户档案表就可以了。
    Session的跟踪机制
    Flask框架中,session的跟踪机制跟Cookie有关,这也就意味着脱 离了Cookie,session就不好使了。
    因为session跟踪机制跟cookie有关,所以,要分服务器端和客户 端分别起到什么功能来理解。
    问:
    若客户端禁用了浏览器的Cookie功能,session功能想 继续保留,该咋整?给出你的实现思路(能代码实现最好)
    答:
    URL地址携带SessionID

    二.Session操作

    关于Session的操作有增,删,改,查。
    在对Session进行操作之前,得对Session进行加密操作!
    加密操作:
    直接设置
    app.secret_key='随机字符串'
    
    通过类来操作
    class DefaultConfig(object):
        SECRET_KEY = '随机字符串'
    app.config.from_object(DefaultConfig)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    增,改:
    session['hh'] = 'qf'
    
    • 1
    查:
    s = session.get('hh')
    
    • 1
    删:
     #删除指定的key的session
     # session.pop('hh')
    
     #删除session中的所有的key 【删除所有】
     session.clear()
    
    • 1
    • 2
    • 3
    • 4
    • 5

    三.实例

    #coding=utf-8
    
    from flask import Flask,session
    from os import urandom
    
    app = Flask(__name__)
    
    app.secret_key = urandom(7)
    
    
    @app.route('/set_session/')
    def set_session():
        session['hh'] = 'qf'
        session['NBK'] = '666'
        return 'set session success!'
    
    @app.route('/get_session/')
    def get_session():
        s = session.get('hh')
        s1 = session.get('NBK')
        print(f'后台显示的内容为{s}{s1}')
        return f'得到得session内容为{s}{s1}'
    
    @app.route('/del_session/')
    def del_session():
        # session.pop('hh')
        session.clear()
        return 'pop success'
    
    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
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    在这里插入图片描述

    注:
    如果觉得笔记有些问题,麻烦在百忙之中在评论中指正,或提出建议!另外,如果觉得这份笔记对你有所帮助,麻烦动动发财的小手手点一波赞!
  • 相关阅读:
    Qt开发必备技术栈学习路线和资料
    命名管道原理(和匿名管道的对比),mkfifo(命令行,函数),命名管道模拟实现代码+与多个子进程通信代码
    Python 潮流周刊#48:Python 3.14 的发布计划
    NVM:切换node版本后无法使用npm全局包
    .[nicetomeetyou@onionmail.org].faust深入剖析勒索病毒及防范策略
    SaaS企业如何构建与自身增长目标相匹配的组织力?
    ABAP json解析使用引用代替预定义数据结构
    【精灵雪花特效】(HTML+JS+CSS+代码+效果)
    Windows 驱动开发 新手入门(四)
    DNDC模型土壤碳储量、温室气体排放、农田减排、土地变化、气候变化中的实践应用
  • 原文地址:https://blog.csdn.net/qq_55961861/article/details/126567531