一 什么是cookie

什么是cookie?如果单单从数据结构的角度来说,它可以被理解成用来保存数据的一个dictionary,由一组组键值对组成.如果从作用上来说,我们知道Http协议是一种无状态的协议.什么叫无状态呢,就是本次的客户端请求不会保留上一次客户端请求的状态,简单点说就是这样会要求我们每次在浏览器中点开一个网站的链接都会输一次账户和密码.cookie就是用来解决这个问题的.

为了解决上述问题,我们第一次登录web服务器,服务端就会在它的响应中的Set-Cookie字段中发送一些键值对,这就包括一个Session ID以及其他一些信息(也包括我们自定义的cookie中的键值对),并告诉客户端在本地缓存这个cookie.然后客户端以后进行链接时每次都会发送这个Session ID,服务器一看是哪个Session ID就知道是哪个客户端发起的链接了,就不会要求我们再次输账户和密码验证了.

我们在flask中自定义cookie,实际上就是在响应Response的Set-Cookie字段中增加我们自定义的键值对.而获取cookie,就是通过请求Request中通过键获取其对应的值.

二 设置cookie

通过响应对象的set_cookie方法我们可以设置自定义cookie:

  1. @app.route('/set_cookie')
  2. def set_cookie():
  3. response=make_response('Hello World');
  4. response.set_cookie('Name','Hyman')
  5. return response

我们还可以指定cookie的有效时长,下面的代码把有效时长设置成了30天.通常情况下,我们还可以在浏览器上设置cookie的有效时长,而且浏览器上配置的有效时长优先级要高于我们在代码中设置的.

  1. outdate=datetime.datetime.today() + datetime.timedelta(days=30)
  2. response.set_cookie('Name','Hyman',expires=outdate)

三 获取cookie

我们可以使用Request对象cookies字段的get方法来获取我们所需要的cookie,下面的代码我们直接获取cookie并返回给视图函数:

  1. @app.route('/get_cookie')
  2. def get_cookie():
  3. name=request.cookies.get('Name')
  4. return name

我们还可以在模板中获取cookie,然后渲染模板.

test.html:

<h1>My name is {{request.cookies.get('Name')}}</h1>

渲染模板:

  1. @app.route('/get_template')
  2. def get_template():
  3. return render_template('test.html')

四 删除cookie

共有三种方法可以删除一个cookie:

(1) 可以通过在浏览器中设置来清除cookie.

(2) 使用Response的set_cookie进行清除

  1. @app.route('/del_cookie')
  2. def del_cookie():
  3. response=make_response('delete cookie')
  4. response.set_cookie('Name','',expires=0)
  5. return response

(3)使用Response的 delete_cookie方法.

  1. @app.route('/del_cookie2')
  2. def del_cookie2():
  3. response=make_response('delete cookie2')
  4. response.delete_cookie('Name')
  5. return response

转载于:https://www.cnblogs.com/Dark-fire-liehuo/p/9922707.html

flask处理cookie相关推荐

  1. Flask之cookie、session、闪现

    文章目录 Flask之cookie.session.闪现 一.cookie 1.1 什么是cookie? 1.2 如何在flask中使用cookie? 1.2.1 设置cookie 1.2.1.2 实 ...

  2. Flask之Cookie与Session

    Cookie与Session 1 Cookie 设置 from flask import Flask, make_responseapp = Flask(__name__)@app.route('/c ...

  3. flask(五) cookie 和session

    flask 中的cookie和session cookie是一种存储格式,主要是存在于浏览器中,为了能够在浏览器中保存一些数据,为了以后不需要重复登录等目的 session 也是一种存储格式,与coo ...

  4. [译]Flask教程--Cookie

    cookie是保存在客户端电脑中一种文本形式的数据. 它的作用是记录并追踪客户端使用方面的数据, 用于统计数据和达到更好的用户体验. Flask的全局request对象包含了cookie属性, 它是个 ...

  5. Flask——cookie的使用

    Flask的cookie设置有多种方式,以下简述基本的使用方法: 1.cookie的设置方法 (1)使用set_cookie() 方法进行设置: from flask import Flask,mak ...

  6. flask 配置文件和学习资料

    原文:https://www.cnblogs.com/gaoya666/p/9174665.html 方式一:从文件中加载配置 1.创建一个配置文件,如:config.ini,在配置文件中写入你想要配 ...

  7. python flask 路由_python框架之Flask(2)-路由和视图Session

    路由和视图 这一波主要是通过看源码加深对 Flask 中路由和视图的了解,可以先回顾一下装饰器的知识:[装饰器函数与进阶] 路由设置的两种方式 #示例代码 from flask importFlask ...

  8. python - Flask 基础(1)

    这两天稍微接触了一点 Flask 框架,所以分享点基础 1. 配置文件 from flask import Flaskapp = Flask(__name__) # 使用自定义的配置文件 app.co ...

  9. Flask入门到实战

    文章目录 1. Flask初识 1. Flask概述 2. wsgi 3. 安装Flask 4. werkzurg 5. 第一个Flask应用 2. 配置文件的使用 1. 配置文件导入原理 2. 配置 ...

最新文章

  1. Java锁有哪些种类,以及区别
  2. 浅谈积性函数求前缀和
  3. CSS+JS鼠标悬停单元格变色
  4. 前端学习(1404):多人管理24joi验证
  5. HTML---初识HTML
  6. Navicate ---error 2003: can‘t connect to mysql server on ‘localhost‘(10061)“
  7. 【caffe】ubuntu配置matlab接口----matcaffe
  8. 【SHOI2009】【BZOJ2028】会场预约(线段树染色)
  9. 写给2018考研的你
  10. 用户态与内核态之间的切换
  11. mysql如何高效存储IPv4、IPv6地址
  12. #10019. 「一本通 1.3 例 2」生日蛋糕
  13. mouseover和mouseout区别
  14. 电点国际化翻译系统,助力你开启海外项目之旅
  15. 固定资产管理系统能帮助企业做哪些工作?
  16. idea合并分支只合并某次提交的代码
  17. html:对于拼多多网页的简单制作
  18. whistle工具常用功能
  19. 浅谈基于UDS的ECU刷写方案(Bootloader刷新)
  20. C语言指针学习 小泉的难题

热门文章

  1. 冯诺依曼架构的 IO 鸿沟,谁能来填补?
  2. AnalyticDB MySQL拥抱云原生,强力支撑双十一
  3. 欢迎参与2020年云栖大会——引领企业基础设施云化
  4. 怎样加速微软商店服务器,windows10系统如何加快应用商店打开速度【图文教程】...
  5. 使命召唤 战区:战术竞技新思路,卷入RPG元素的激烈战斗
  6. 白鹭引擎助力《迷你世界》研发团队开发3D小游戏版
  7. 我的Go+语言初体验——10秒真男人游戏
  8. 九零后程序员心塞大哭:“我累的心脏疼,父母却说我工作很轻松”
  9. Linux server配置安装Java,Tomcat服务器
  10. 简单来说一下java中的泛型,ssh中dao层使用会简化代码量