机制:服务器端发送的小段文本信息存储在客户端硬盘

功能:记录用户偏好,请求、页面、站点间共享信息

特点:易丢失、安全隐患

添加cookie,需要用到make_respons.set_cookie

@app.route('/setck/')
def setck():
""" 添加cookie """
response = make_response('ok')
response.set_cookie('username', 'aaa')
return response

可在浏览器上设置是否存cookie,如谷歌:隐私设置-网站设置-cookie

查看cookie内容:查看所有cookie和网站数据,搜索要查看的域名,默认过期时间是关闭浏览器即失效

获取请求里面的cookie:request.cookies.get('xxx')

@app.route('/getck/')
def getck():
""" 获取cookie request.cookies.get('xxx') """
ck = request.cookies.get('username')
if ck:
return ck
return '未获取到cookie'

set_cookie的一些参数

@app.route('/setck/')
def setck():
""" 添加cookie,timedelta由datatime导入 """
response = make_response('ok')
response.set_cookie('username', 'aaa', path='/', expires=datetime.now() + timedelta(days=7))
# set_cookie 参数
# dmain='baidu.com' 指定cookie只对baidu.com起作用
# path='/' 此cookie能访问的路径
# httponly=True 只能http访问,默认关闭
# max_age=60 cookie生命周期,默认为None,浏览器关闭时销毁,单位为秒
# expires=datetime.now() + timedelta(days=7) # 指定过期时间为7天
return response

删除cookie:由于不允许直接操作硬盘,所以采用更新cookie生效时间的方法,找到cookie,把生效时间设为当前时间之前

@app.route('/rmck/')
def remove_cookie():
""" 删除cookie,
由于不允许直接操作硬盘,所以采用更新cookie生效时间的方法
找到cookie,把生效时间设为当前时间之前
"""
resp = make_response('删除cookie')
# 把生效时间设为上一秒
resp.set_cookie('username', '', expires=datetime.now() + timedelta(minutes=-1))
return resp

测开之路一百三十九:会话管理之cookie写入、读取、和更新的更多相关文章

  1. 测开之路一百三十八:会话管理之session

    session管理和使用,需要用到flask的session模块和设置安全码:app.secret_key 比如列表页和编辑功能只能给admin用 列表页 编辑页 添加session 登录成功时,把u ...

  2. 测开之路一百二十九:jinja2模板语法

    flask用的是jinja2模板,有自己特定的语法 形参: 在html里面留占位参数: {{ 参数名 }},后端传值时,参数名=参数值 <!DOCTYPE html><html la ...

  3. 测开之路一百五十二:基于jquery的ajax实现之load、get、ajax

    ajax除了用原生的js实现之外,也可以使用jquery实现,而且用jquery更方便 看一个简单的示例,保留上一篇的content路由和html,实现上一篇一样的功能,点击获取内容,局部刷新 准备一 ...

  4. 测开之路一百五十五:jquery-validation前台数据验证

    前面做的wtform验证是服务器端的验证,需要把数据传输到服务器,服务器验证后再吧结果传输到前端,网络慢的时候,用户体验不好,所以需要前端验证,且后端验证不能少 传统的js或者jquery如果要验证信 ...

  5. 测开之路一百五十四:ajax+json前后台数据交互

    在实际工作中,前后端数据交互大部分都是用的json格式,后端把数据处理完后,把json传给前端,前端再解析 项目结构 models里面加入把数据转为字典的方法 from datetime import ...

  6. 测开之路一百四十九:jinja2模板之宏

    jinja2是python的模板引擎, 在写python web使用的过程中,macro可以节省大量的代码 比如上一篇的渲染页面 <!DOCTYPE html><html lang= ...

  7. 测开之路一百三十三:实现sql函数封装

    连接数据库的频率很高,所以把数据库操作封装起来 函数封装: def make_dicts(cursor, row): """ 将游标获取的Tuple根据数据库列表转换为d ...

  8. 测开之路一百二十八:flask之重定向和404

    a.b两个视图,分别返回a的页面和b的页面 重定向:redirect 重定向到路由:请求/a/时,重定向到/b/ 重定向到视图函数:url_for(“函数名“),访问/a/时,重定向到函数b() 主动 ...

  9. 测开之路一百二十六:flask之获取request请求数据

    可以根据flask的request对象获取所有的请求信息 path = request.path # 获取请求地址method = request.method # 获取请求方法ip = reques ...

随机推荐

  1. 爬虫获取网页数据,报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start by

    https://blog.csdn.net/hj_xy_0705/article/details/85011072

  2. neutron网络实践

    一.虚拟机获取 ip: 用 namspace 隔离 DHCP 服务 Neutron 通过 dnsmasq 提供 DHCP 服务,而 dnsmasq 通过 Linux Network Namespace ...

  3. 003-基于impi zabbix监控r720 测试过程

    1.F2进入服务器bios 修改network  使这台服务器能够被远程访问. 2.在远程的centos 7 服务器上安装  impitool工具包 #ipmitool -I lanplus -H X ...

  4. Spring Framework Part1

    初识Spring 1.Spring是一个支持IOC(Inversion of Control),DI(Dependency Injection),AOP(Aspect Oriented Program ...

  5. Java JDK下载方法

    https://jingyan.baidu.com/album/574c5219fb033c2c8d9dc194.html?picindex=5  也可以参考这个 ‘’‘’ 大家下载的时候一定要按照步 ...

  6. 通信接口是webservice快还是scoket快解决方案

    通信接口是webservice快还是scoket快webservice和scoket都可以做为通信接口,一个走HTTP访问,一个走TCP协议访问 问1:通讯速度是webservice快还是scoket ...

  7. MySQL不常用、易忽略的小知识

    笔者从事开发也有一段时间了,关于数据库方面的一些小知识在这里总结一下 1.count(*),count(1)与count(column)区别 count(*)对行的数目进行计算,包含NULL coun ...

  8. CodeForces-437C(贪心)

    链接: https://vjudge.net/problem/CodeForces-437C 题意: On Children's Day, the child got a toy from Delay ...

  9. ES6---new Promise()讲解(尤其注意里面的参数resolve、reject)

    直接打印出来看看吧,console.dir(Promise). 这么一看就明白了,Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方法,原型上有then.cat ...

  10. Sublime text3配置C/C++编译环境

    安装sublime text3后,一直很喜欢使用它看代码(这个高亮配色真的很好看).它默认的运行环境就有C/C++,在写了一个hello world!后正常输出,但在加入scanf()输入后就不行了. ...