Flask cookie
一 什么是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:
@app.route('/set_cookie')
def set_cookie():
response=make_response('Hello World');
response.set_cookie('Name','Hyman')
return response
我们还可以指定cookie的有效时长,下面的代码把有效时长设置成了30天.通常情况下,我们还可以在浏览器上设置cookie的有效时长,而且浏览器上配置的有效时长优先级要高于我们在代码中设置的.
outdate=datetime.datetime.today() + datetime.timedelta(days=30)
response.set_cookie('Name','Hyman',expires=outdate)
三 获取cookie
我们可以使用Request对象cookies字段的get方法来获取我们所需要的cookie,下面的代码我们直接获取cookie并返回给视图函数:
@app.route('/get_cookie')
def get_cookie():
name=request.cookies.get('Name')
return name
Flask cookie的更多相关文章
- 9.Flask Cookie和Session
1.1.概念 cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了解决这个问题,第 ...
- 【Flask】Flask Cookie操作
### 什么是cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了解决这个问题,第 ...
- Flask Cookie和Session
1.1.概念 cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了解决这个问题,第 ...
- 六十:Flask.Cookie之flask设置cookie的有效域名
设置cookie有效域名cookie默认只能在主域名下使用,如果要在子域名下使用,则应该给set_cookie设置属性domain='.主域名',此时,此cookie在此主域名下的所有子域名均有效 f ...
- 五十八:Flask.Cookie之flask设置和删除cookie
1.设置cookie:在flask.Response对象上,使用set_cookie('cookie名', 'cookie值')设置cookie set_cookie源码 key:cookie名val ...
- 五十九:Flask.Cookie之flask设置cookie过期时间
设置cookie有效期1.max_age:距离现在多少秒后过期,在IE8以下不支持2.expires:datatime类型,使用此参数,需参照格林尼治时间,即北京时间-8个小时3.如果max_age和 ...
- flask-admin章节四:flask session的使用
1. 关于session flask session可能很多人根本都没有使用过,倒是cookie大家可能使用得比较多.flask cookie使用起来比较简单,就两个函数,读取和设置. 具体使用方式如 ...
- Flask 源代码阅读笔记
我认为我已经养成了一个坏习惯.在使用一个框架过程中对它的内部原理非常感兴趣,有时候须要花不少精力才 明确,这也导致了学习的缓慢,但换来的是对框架的内部机理的熟悉,正如侯捷所说,源代码面前,了无秘密.这 ...
- flask学习导航主页
我就学习了网易课堂的知了Flaskk. 十分感谢. └—01-Flask视图和URL ├—课时001.[Flask预热]课程介绍 ├—课时002.[Flask预热]Flask课程准备工作 ├—课时00 ...
随机推荐
- if、else、else if后的条件执行体
if.else.else if后的条件执行体有两种情况:一种是用大括号“{ }”括起来的代码块,这个代码块被称作条件执行体:另一种是以分号“:”作为结束符的单行语句或空语句(仅有一个分号),这个单行语 ...
- PHP批量保存图片
关于这个问题网上也有回答,我只是把我在工作中用到的代码分解出来,供需要的朋友使用.以下代码都已经经过测试,所以没有任何问题.有问题请加QQ:1127173874 第一部分 数据库表结构 create ...
- Django 模本(Template--for--csrf--if--filter--simple_tag模版继承等)
前提 关于html寻找路线: template 如果在各个APP中存在, Django 会优先找全局template 文件下的html文件,如果全局下的template文件没有相关的html Dja ...
- DataGridView添加的数据最后一步无法生效的问题。
在做项目时,需要使用到大量固定的参数,使用时只需修改一部分定值即可,所以就选用DataGridView控件进行循环添加,数据添加完成,一切正常,但是在修改数据时发现,每一次修改的数据的操作的最后一步总 ...
- 41_redux_counter应用_react-redux版本
问题: redux与react组件的代码耦合度太高 编码不够简洁 react-redux 1)是一个react插件库 下载: npm install --save react-redux@5.0.6 ...
- NE76003单片机调试DS18B20 步骤
一.硬件部分 GND脚接地: DQ脚接P03,外加4K7上拉电阻: VCC脚接3.3v供电: 二.软件部分 1.配置P03为准准双向 IO类型: void Init_power_gpio(void){ ...
- .net WCF简单练习
之前一直没接触过WCF这个东西,由于是初学WCF没有深入研究其原理,只是写了一个demo WCF服务用于两个不同项目中的调用,在这里我举例项目A调用WCF服务实现查询数据功能. 第一步:创建数据库,有 ...
- Python设计模式 - UML - 组合结构图(Composite Structure Diagram)
简介 组合结构图用来显示组合结构或部分系统的内部构造,包括类.接口.包.组件.端口和连接器等元素,是UML2.0的新增图. 组合结构图侧重复合元素的方式展示系统内部结构,包括与其他系统的交互接口和通信 ...
- LR实现问答系统查询功能
脚本中未对问题进行参数化处理,关键点在于关联取值和web_add_header()函数的使用 Action() { web_url("首页", "URL=http://q ...
- 【c# 数据库】对数据库进行增删查改
1.DataGridView链接数据库 2.链接数据库 using System.Data.SqlClient; SqlConnection con = null; //创建SqlConnection ...