• flask的cookie和session的简单原理


      在Flask的框架中,自己已经封装了 cookie的respons,request 有存储就有读取及删除,那么就拿购物车来举例

      在我们登陆的时候会有之前在购物车存放的物品。也就是说在一个地方为我们保存了这些数据。前提有一个是要你登陆之后才能看到自己的购物车

      cookie对应的是client session对应的是server。  也就是说,要在服务器上登录你对应的账户,才能看到你自己在购物车添加的物品。但是

      物品那么多,不能都存在服务器上吧,所以一般cookie都存在自己的计算机上,只是找不到而已,这里就不说了。一些简单的原理实现一下。

      思路有了,就要上代码

    首先来看cookie的简单存储,读数据,删除数据怎么实现 

    # -*- encoding: utf-8 -*-

    # cookie相关的操作,依赖于make_response库,调用cookie依赖request
    # 导包
    from flask import Flask, make_response, request

    # 建立对象
    app = Flask(__name__)

    # 从配置文件中加载配置
    app.config.from_pyfile('config.ini')

    @app.route('/')
    def index():
    return '这里是首页'

    # cookie存在client里。存在自己电脑的个人当资料里
    # 存cookie的方法
    @app.route('/setcookie')
    def set_cookie():
    resp = make_response('存储cookie')
    # 使用set方法,来存储 key-values 形式的数据
    resp.set_cookie('productname','卫生纸')
    return resp


    # 获取,取到数据,调用cookie的方法
    @app.route('/getcookie')
    def get_cookie():
    # 通过request模块的cookies属性的方法指定Key 来调用value
    resp = request.cookies.get('productname')
    return resp

    # 删除cookie的方法
    @app.route('/delcookie')
    def del_cookie():
    # 通过make_response对象内置的delete_cookie方法来指定key来删除vaule
    resp = make_response('删除cookie')
    resp.delete_cookie('productname')
    return resp


    # 程序入口
    if __name__ == "__main__":
    app.run()
     
     
     
    那么再来看session的简单实现,相比较而言,session的会简单些。
    # -*- encoding: utf-8 -*-

    # session 是依赖于flask的session模块
    # 如果想要使用session模块。必须在配置文件中定义 secret——key (安全密钥)
    # 导包
    from flask import Flask, session

    # 实例化对象
    app = Flask(__name__)


    # 配置文件
    app.config.from_pyfile('config.ini')


    # 创建首页
    @app.route('/')
    def index():
    return '这是服务端'


    # 存储session的方法
    @app.route('/setsession')
    def set_session():
    # 直接使用session对存储的内容赋值
    session['username'] = '你好啊, 这是我的私有属性。只有在服务端才能调用。客户端是调用不了这个session的key-value'
    return '存储session成功'

    # 有存储就有取
    @app.route('/getsession')
    def get_session():
    # 通过session直接对内容进行调用
    se = session['username']
    return se

    # 删除session的方法。
    @app.route('/delsession')
    def del_session():
    # 通过session的pop方法来指定key删除vaule
    session.pop('username')
    return '删除成功'




    # 程序入口
    if __name__ == "__main__":
    app.run()
     
     
     
        为了更好的业务,敲最好的代码。(我的也不怎么样[/捂脸])欢迎阅读
     
  • 相关阅读:
    WCF 无法生成 client
    Powershell profile.ps1 cannot be loaded because its operation is blocked by software restriction policies
    信步拾遗之Windwos Live Writer插件
    Maven setting.xml文件详解(转)
    Maven pom.xml详解(转)
    信步漫谈之Maven—基础介绍
    信步漫谈之Nginx—负载均衡
    信步漫谈之Hibernate—基础介绍
    信步漫谈之Dom4j—基础介绍
    信步拾遗之CHM开源文档制作
  • 原文地址:https://www.cnblogs.com/binyuei/p/10148008.html
Copyright © 2020-2023  润新知