一,基本概念。

1,session的概念。

session和cookie的作用有点类似,都是为了存储用户相关的信息。不
同的是,cookie是存储在本地浏览器,而session是存储在服务器。存
储在服务器的数据会更加的安全,不容易被窃取。但存储在服务器也有
一定的弊端,就是会占用服务器的资源,但现在服务器发展至今,一些
session信息还是绰绰有余的。

使用session的好处:
1,敏感数据不是直接发送回浏览器,而是发送回一个“session_id”,服
务器将“session_id”和敏感数据做一个映射存储在“session”(在服务器)
中,更加安全。
2,“session”可以设置过期时间,也从另外一方面保证了用户的账号安全。

2,cookie的概念。

在网站中,http请求是无状态的。也就是说即使第一次和服务器连接
后并且登陆成功后,第二次请求服务器依然不能知道当前请求是哪个
用户。cookie的出现就是为了解决这个问题,第一次登陆后服务器返
回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户
发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自
动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户
是哪个了。cookie存储的数据量有限,不停的浏览器有不同的存储大
小,但一般不超过4KB。因此使用cookie只能存储一些小量的数据。


3,session及cookie结合使用。

cookie和session结合使用:
web发展至今,cookie和session的使用已经出现了一些非常成熟的方案。
在如今的市场或者企业里,一般有两种存储方式。
1,存储在服务器:通过cookie存储一个session_id,然后具体的数据则
是保存在session中。如果用户已经登录,则服务器会在cookie中保存一
个session_id,下次再次请求的时候,会把该session_id携带上来,服务
器根据session_id和session库中获取用户的session数据。就能知道用户
到底是谁,以及之前保存的一些状态信息。这种专业术语叫做sever side
session。
2,将session数据加密,然后存储在cookie中。这种专业术语叫做client
side session。flask采用的就是这种方式,但是也可以替换成其他形式。

4,flask中session及cookie的不同。

flask中session工作机制(和上述概念有点区别):
1,把敏感数据经过加密后放入“session”中,然后再把“session”存放在“
cookie” 中,下次请求的时候,再从浏览器发送过来的“cookie”中读取
“session”,然后再从“session”中读取敏感数据,并进行解密,获取最终的
用户数据。
2,“session”可以设置过期时间,也从另外一方面保证了账号安全。
3,安全是相对的,把“session”放在“cookie”中,经过加密,也是比较安全的。

二,具体操作

1,session写入。session的设置和字典一样,注意:记住设置SECRET_KEY,它的作用相当于“盐”

from flask import Flask,session
import config app = Flask(__name__)
app.config.from_object(config) @app.route('/')
def hello_world():
session['username'] = "zhiliao"
return 'Hello World!' if __name__ == '__main__':
app.run() import os
SECRET_KEY =os.urandom()

经过运行后,结果为:内容经过SECRET_KEY撒盐后变为一长串东西。

2,session读取。

# 读取session
@app.route('/get/')
def get():
# 两种方法
# ,session['username']
# ,session.get('username')
return session.get('username')

3,session删除

@app.route('/')
def hello_world():
session['username'] = "zhiliao"
return 'Hello World!' # 读取session
@app.route('/get/')
def get():
# 两种方法
# ,session['username']
# ,session.get('username')
return session.get('username') @app.route('/delete/')
def de():
print(session.get('username'))
session.pop('username')
return "sss"

注意:先执行http://127.0.0.1:5000/才会先生成session,后面才能删除(执行http://127.0.0.1:5000/delete/

不然没有session怎么删。

4,清除session中的所有键值对。

@app.route('/clear/')
def clear():
print(session.get('username'))
session.clear() #嗲括号
print(session.get('username'))
return "aaa"

三,设置过期时间。

@app.route('/')
def hello_world():
session['username'] = "zhiliao"
session.permanent = True
return 'Hello World!'

不设置的话关掉网页就没了,设置永久的话最长为一个月时间。

常规的天数设置:

from flask import Flask,session
import config
from datetime import timedelta app = Flask(__name__)
app.config.from_object(config)
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=) #2 @app.route('/')
def hello_world():
session['username'] = "zhiliao"
session.permanent = True #这句话不加的话就不会执行#2代码
return 'Hello World!'

07flask中session及cookie的用法。的更多相关文章

  1. yii2.0框架中session与cookie的用法

    我们在开发项目中南面使用到session给和cookie,那么在yii中有他自己的规则 如下案例: session使用     function actionS1(){         echo $t ...

  2. PHP中Session和Cookie的探究

    一.Session (1)Session的由来以及介绍 Session:在计算机中,尤其是在网络应用中,称为“会话控制”,生存时间为用户在浏览某个网站时,从进入网站到关闭这个网站所经过的这段时间,也就 ...

  3. PHP中session和cookie的区别

    这个话题无论是系统运维还是PHP开发人员面试时会经常遇到,所以这里也进行一些总结和归纳,session和cookie的具体理论网上比较大,大家googel下均可;系统运维注意区分下session(会话 ...

  4. Session和Cookie的用法及区别

    1. Session.Cookie是什么 1.1 概念理解 要了解session和cookie是什么,先要了解以下几个概念. 1.1.1 无状态的HTTP协议 协议:是指计算机通信网络中两台计算机之间 ...

  5. webform中Session和Cookie对象的用法

    Session: Session:在计算机中,尤其是在网络应用中,称为"会话控制".Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web页之间 ...

  6. Django中的session于cookie的用法

    1.cookies 1.django 中使用 cookies 1.设置cookies的值(将数据保存到客户端) 语法: 响应对象.set_cookie(key,value,expires) key:c ...

  7. php中session和cookie

    cookie 每次请求页面的时候进行验证,如果用户信息存储在数据库中,每次都要执行一次数据库查询,给数据库造成多余的负担.cookie可以被修改的,所以安全系数太低. session是存储在服务器端面 ...

  8. 简单操作django中session和cookie

    cookie 1.会话技术 2.客户端的会话技术( 数据库保存在浏览器上) 3.问题导致原因: 在web应用中,一次网络请求是从request开始,到response结束,跟以后的请求或者跟其他请求没 ...

  9. php中session和cookie的使用及区别

    1.cookie的使用 什么是 Cookie? cookie 常用于识别用户.cookie 是服务器留在用户计算机中的小文件.每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie.通过 P ...

随机推荐

  1. PMP知识点(六)——项目经理权利类型

    社会心理学家约翰.弗伦奇(John.French)和伯特伦.雷文(Bertram.Raven)在他们1959年发表的一篇迄今不朽的论文中,提出了五种权力类别的模型,这个模型折射出权力拥有者依赖的不同基 ...

  2. Date Structure01-绪论作业

    一.作业题目 仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子.分母均为整数且分母不为零的分数). 有理数基本运算:1.构造有理数T,元素e1,e2分别被赋以分子.分母值2 ...

  3. lillietest 正态分布的拟合优度测试

    函数 lillietest格式 H = lillietest(X) %对输入向量X进行Lilliefors测试,显著性水平为0.05.H = lillietest(X,alpha) %在水平alpha ...

  4. vue项目中遇到的那些事。

    前言 有好几天没更新文章了.这段实际忙着做了一个vue的项目,从 19 天前开始,到今天刚好 20 天,独立完成. 做vue项目做这个项目一方面能为工作做一些准备,一方面也精进一下技术. 技术栈:vu ...

  5. C# 获取电脑配置信息

    对于软件绑定电脑常用到的方法汇总 public class Computer { public string MyProperty { get; set; } /// <summary> ...

  6. JAVA进阶16

    间歇性混吃等死,持续性踌躇满志系列-------------第16天 1.桌球游戏小项目 ①窗口加载 import javax.swing.*; public class BallGame exten ...

  7. 2018-2019-2-20175235 实验一 《Java开发环境的熟悉》实验报告

    实验一 Java开发环境的熟悉 实验内容及要求: 1.使用JDK编写简单的Java程序 2.使用IDEA编辑编译运行调试测试Java程序 实验内容,步骤与心得: (一).Linux命令行下Java程序 ...

  8. Sql server2012转sql server2008步骤经验总结(转)

    wIndows用户登入选择“数据库”右键选择“附加”点击“添加” 打开数据库,右键选中 选择“任务”→“生成脚本”→“选择对象”→“编写整个数据及所有数据库对象的脚本” →“下一步” “设置脚本编写选 ...

  9. Filebeat 启动关闭流程

    启动阶段: instance/beat.go #打印home路径.配置路径.数据路径和日志路径 seccomp #Syscall filter检查 instance/beat.go #beat inf ...

  10. MyOD(课下作业,选做)

    MyOD(课下作业,选做) 代码要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.b ...