python的flask操作设置、获得与删除session

作者:Davidszhou   来源:SEO优化博客   时间:2017-10-18 14:20:57   点击:

python的flask操作设置、获得与删除session


首先讲一下Python的flask中session与cookies的关系,都晓得在PHP语言中,session是储存在服务器中的,cookies是储存在浏览器本地中,而flask的session与cookies,session是经过加密保存在cookies中。
在flask中使用session需要先设置secret_key,根据算法加密session信息,来看下flask的session的API:
-----------------------------------
如果你设置了 Flask.secret_key ,你可以在 Flask 应用中使用会话。会话主要使得在请求见保留信息成为可能。 Flask 的实现方法是使用一个签名的 cookie 。 这样,用户可以查看会话的内容,但是不能修改它,除非用户知道密钥。所以确保密钥被设置为一个复杂且无法被容易猜测的值。

你可以使用 session 对象来访问当前的会话:

class flask.session
会话对象很像通常的字典,区别是会话对象会追踪修改。

这是一个代理。更多信息见 留意代理 。

下列属性是需要关注的:

new
如果会话是新的,该值为 True ,否则为 False 。

modified
当果会话对象检测到修改,这个值为 True 。注意可变结构的修改不会被自动捕获,这种情况下你需要自行显式地设置这个属性为 True 。这里有一个例子:

# this change is not picked up because a mutable object (here
# a list) is changed.
session['objects'].append(42)
# so mark it as modified yourself
session.modified = True
permanent
如果设为 True ,会话存活 permanent_session_lifetime 秒。默认为 31 天。 如果是 False (默认选项),会话会在用户关闭浏览器时删除。
----------------------------------
下面我们就来看下session具体的使用方法:
首先设置SECRET_KEY:
可以再flask的config.py内设置代码:
import os
SECRET_KEY = os.urandom(24)
也可以直接在run.py内设置SECRET_KEY,方法如下:
app.config['SECRET_KEY'] = os.urandom(24)
----------
os.urandom:
os.urandom(n)
返回n个字节的用以加密的随机字符串
----------
run.py中,如果引用文件是:
from flask import Flask
那么记得添加session类,即:
from flask import Flask,session
如果你直接引用了flask即:
import flask
就不用再次引用session了,他直接全部引用了flask内的所有类
然后就可以直接使用,下面是设置session代码:
session['name'] = 'www.zongk.com'
就设置了session的键:'name' 他的值是'www.zongk.com'
如何获得session值?
sessionvalue = session.get('name')
或者:
sessionvalue = session['name']
为什么不用第二种方式获得?如果这种方法获得话,当'name'不存在就会报错,带来麻烦。
-----------------------
上面说了设置与获取session
那么如何删除session呢?
可以直接使用session.pop('key',None) 即:
session.pop('name',None)
如果要删除session中所有数据使用:clear()即:
session.clear()
 

TAGS:python , flask , session

来自Davids zhou博客原创文章请尊重作者:http://www.zongk.com/zongk/102.html转载请标注此链接

网站统计
文章总数:129
今天发布:0
软件资源数:18