测开之路一百三十九:会话管理之cookie写入、读取、和更新
机制:服务器端发送的小段文本信息存储在客户端硬盘
功能:记录用户偏好,请求、页面、站点间共享信息
特点:易丢失、安全隐患
添加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写入、读取、和更新的更多相关文章
- 测开之路一百三十八:会话管理之session
session管理和使用,需要用到flask的session模块和设置安全码:app.secret_key 比如列表页和编辑功能只能给admin用 列表页 编辑页 添加session 登录成功时,把u ...
- 测开之路一百二十九:jinja2模板语法
flask用的是jinja2模板,有自己特定的语法 形参: 在html里面留占位参数: {{ 参数名 }},后端传值时,参数名=参数值 <!DOCTYPE html><html la ...
- 测开之路一百五十二:基于jquery的ajax实现之load、get、ajax
ajax除了用原生的js实现之外,也可以使用jquery实现,而且用jquery更方便 看一个简单的示例,保留上一篇的content路由和html,实现上一篇一样的功能,点击获取内容,局部刷新 准备一 ...
- 测开之路一百五十五:jquery-validation前台数据验证
前面做的wtform验证是服务器端的验证,需要把数据传输到服务器,服务器验证后再吧结果传输到前端,网络慢的时候,用户体验不好,所以需要前端验证,且后端验证不能少 传统的js或者jquery如果要验证信 ...
- 测开之路一百五十四:ajax+json前后台数据交互
在实际工作中,前后端数据交互大部分都是用的json格式,后端把数据处理完后,把json传给前端,前端再解析 项目结构 models里面加入把数据转为字典的方法 from datetime import ...
- 测开之路一百四十九:jinja2模板之宏
jinja2是python的模板引擎, 在写python web使用的过程中,macro可以节省大量的代码 比如上一篇的渲染页面 <!DOCTYPE html><html lang= ...
- 测开之路一百三十三:实现sql函数封装
连接数据库的频率很高,所以把数据库操作封装起来 函数封装: def make_dicts(cursor, row): """ 将游标获取的Tuple根据数据库列表转换为d ...
- 测开之路一百二十八:flask之重定向和404
a.b两个视图,分别返回a的页面和b的页面 重定向:redirect 重定向到路由:请求/a/时,重定向到/b/ 重定向到视图函数:url_for(“函数名“),访问/a/时,重定向到函数b() 主动 ...
- 测开之路一百二十六:flask之获取request请求数据
可以根据flask的request对象获取所有的请求信息 path = request.path # 获取请求地址method = request.method # 获取请求方法ip = reques ...
随机推荐
- jquery-mobile pop
一.弹框 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...
- zabbix修改默认字体
在zabbixweb界面里有时候显示界面为框框 所以修改默认字体 现在windows里 随便找个字体: win+R 搜fonts 然后随便复制了一个字体,传到zabbix服务器里 cp calib ...
- for迭代
for迭代 Python中最简单的循环机制是 while,打开交互式解释器,执行1到的5的循环 >>> count=1 >>> while count<=5: ...
- java.util.Arrays (JDK 1.7)
1.asList //返回由指定数组支持的固定大小的列表,返回的列表是可序列化的 public static <T> List<T> asList(T... a) { retu ...
- 解决CRMEasy新建咨询不能保存问题
系统时间必须为24H制 将12H制修改为24H制的方法:(XP系统) 控制面板---区域和语言选项----区域选项-----自定义---时间----时间格式为:HH:mm:ss-----确定
- Parallel并行循环
Parallel.For(, , new ParallelOptions() { MaxDegreeOfParallelism = 100 },(i, pls) => { ) { pls.Bre ...
- 第04课:GDB常用命令详解(上)
本课的核心内容如下: run命令 continue命令 break命令 backtrace与frame命令 info break.enable.disable和delete命令 list命令 prin ...
- VMware主机使用无线上网
VMware主机使用无线上网,默认的NAT连接在ubuntu下上不了网,需要把网络适配器改成桥接模式.
- TypeError: Cannot read property 'splice' of undefined
splice是删除数组里的项,报这个错证明你点前面那个并不是个数组,仔细一看,还真是数组名称写错了
- "东坡肉”
“东坡肉” 苏东坡成名后,求师的人蜂涌而至,有学书法的,有学文章的.也有这么一个人,人问他学什么?他说:我学的是“东坡肉”呢! 苏东坡会不会煮猪肉?从他咏黄州猪肉“慢著火.少著水.火候足时它自美”的诗 ...