一,基本概念。

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. arcgis图层 GraphicsLayer与FeatureLayer

    什么是图层 图层是用来在 ArcGIS 产品套件中显示地理数据集的机制.每个图层代表一种数据集(可以是地图服务.图形或是矢量数据),并指定该数据集是如何描绘使用一组属性的. 包含一个地图控件的每个应用 ...

  2. Redis实战阅读笔记——第二章(redis重构web)

    在性能的要求下,如何用redis重构已有的已有的部分,其实整个例子背后的思路挺好的.在应用缓存的过程中,还有一指标个需要考虑,读写比.

  3. go之路

    目录 go初识[第一篇]初识 go初识[第二篇]包.变量.函数

  4. git命令之git mergetool vi非正常退出.swp删除不了的问题

    1.git   pull命令产生无法merge的错误 使用了 git  mergetool命令然后...傻逼了 进入了vi操作界面,不会操作,非正常退出... 然后就产生了.swp相关文件,死活删除不 ...

  5. 题解 洛谷P3936 Coloring

    考虑搜索,发现复杂度爆炸        贪心,正确性过低(~~实测爆炸~~) 于是,~~发现~~这题是模拟退火 这里不讲解退火的定义了,初学退火可以去平衡点 退火本身维护一个答案图像,答案的q,当前图 ...

  6. 2018-2019-2 20165337《网络对抗技术》Exp2 后门原理与实践

    基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? 下载破解游戏,盗版电影或安装来历不明的软件,可能被留下后门. (2)例举你知道的后门如何启动起来(win及linux)的方式? w ...

  7. golang interface类型转string等其他类型

    inter 是interface类型,转化为string类型是: str := inter .(string) 转为其他类型也类似

  8. 04mycat数据切分

    自定义切分文件 [root@mycat mycat]# cat conf/customer-hash-int.txt 101=0 102=0 103=0 104=1 105=1 106=1 Rule. ...

  9. selenium截图

    文件结构 1.DateUtil.py # cncoding = utf-8 import time from datetime import datetime ''' 本文件主要用于获取当前的日期以及 ...

  10. php 常用的知识点归集(下)

    24.静态属性与静态方法在类中的使用 需求:在玩CS的时候不停有伙伴加入,那么现在想知道共有多少人在玩,这个时候就可能用静态变量的方法来处理 利用原有的全局变量的方法来解决以上的问题 <?php ...