一,基本概念。

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. (Python3 自定义函数实现数字金字塔 代码

    def kzkz(ceng): for i in range(1,ceng+1): print(" "*(ceng-i),end='') n=i while(n>=1): p ...

  2. ultraEdit软件比较两个文件内容的不同处

    1.软件名称为:UltraEdit ,安装并打开软件; 软件图标: 打开软件如图所示: 2.点击导航图标,蓝色上面有Uc图标,该图标名称为“比较文件” 如图位置: 3.弹出框,根据文件路径选择好比较的 ...

  3. centos7.2 下 部署单节点redis 3.2.5

    #tar -xvf redis.3.2.5.tar.gz –C /usr/local/ #cd /usr/local/ #mv redis.3.2.5 redis #cd redis #make &a ...

  4. 分布式系列九: kafka

    分布式系列九: kafka概念 官网上的介绍是kafka是apache的一种分布式流处理平台. 最初由Linkedin开发, 使用Scala编写. 具有高性能,高吞吐量的特定. 包含三个关键能力: 发 ...

  5. P5284 [十二省联考2019]字符串问题

    这是一道涵盖了字符串.图论.数据结构三个方面的综合大题. 把这道题放在D1T2的人应该拖出去打 前置芝士 首先,您至少要会topsort. 其次,如果您只想拿个暴力分,字符串Hash就足够了:如果您想 ...

  6. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

  7. find your present (2) hdoj 2095

    /* author:谦智 find your present (2) hdoj 2095 法一:用暴力 法二:用map 法三: 符号是^. 异或是个位运算符号,具体是怎么操作的请百度,这里有个特性使得 ...

  8. Groovy Closure简介

    什么是闭包(Closure) 在Groovy中,闭包是一段匿名的代码段,它可以有参数,返回值,并且能够赋值给一个变量.闭包中使用的变量可以是在闭包外部定义的,也可以是在闭包内部定义的.

  9. mathJax基础语法-0基础开始,(这是网上抄来的如果有权限和版权问题联系本人处理,仅供学术参考)

  10. newSoft

    Email:kefu007@vip.qq.com CADソフト Siemens PLM NX 1847 (64ビット) 日本語版 KeyCreator Ver.15.5 (64ビット)日本語版 MYP ...