前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >flask的cookie和session

flask的cookie和session

作者头像
py3study
发布2020-02-10 22:53:09
3630
发布2020-02-10 22:53:09
举报
文章被收录于专栏:python3python3

  在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()

    为了更好的业务,敲最好的代码。(我的也不怎么样[/捂脸])欢迎阅读

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档