array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 Flask中的session操作 - 爱码网

因为flask的session是通过加密之后放到了cookie中。所以有加密就有密钥用于解密,所以,只要用到了flask的session模块就一定要配置“SECRET_KEY”这个全局宏。一般设置为24位的字符。配置方法一般有两种。

配置方法一:

新建一个config.py的文件配置secret_key 
config.py

 1 SECRET_KEY = 'XXXXXXXXX' 

 

然后在主运行文件里面添加config文件里面的内容。 
main.py

Flask中的session操作
1 # encoding: utf-8
2 
3 from flask import Flask,session
4 import config
5 
6 app = Flask(__name__)
Flask中的session操作

 

配置方法二:

直接在主运行文件里面配置。配置config的时候也是和操作字典是一样的 
main.py

Flask中的session操作
1 # encoding: utf-8
2 
3 from flask import Flask,session
4 
5 app = Flask(__name__)
6 app.config['SECRET_KEY'] = 'XXXXX'
Flask中的session操作

 

产生方法

 可以引入OS模块中的产生一个24位的随机字符串的函数,这种方法有个缺点,就是服务器每次启动之后这个SECRET_KEY的值都会变。具体自己体会!

1 import os
2 
3 app.config['SECRET_KEY'] = os.urandom(24) # 随机产生24位的字符串作为SECRET_KEY

 

二、操作session –操作session就如同操作字典!

1.设置session

Flask中的session操作
 1 from flask import Flask,session
 2 import os
 3 
 4 app = Flask(__name__)
 5 app.config['SECRET_KEY'] = os.urandom(24)
 6 
 7 # 设置session
 8 @app.route('/')
 9 def set():
10     session['username'] = 'liefyuan' # 设置“字典”键值对
11     return 'success'
12 
13 if __name__ == '__main__':
14     app.run()
Flask中的session操作

 

2.读取session

 因为session就像字典一样所以,操作它的时候有两种方法:

  • (1)result = session[‘key’] :如果内容不存在,将会报异常
  • (2)result = session.get(‘key’) :如果内容不存在,将返回None

所以,使用第二种方法获取session较好。

Flask中的session操作
 1 from flask import Flask,session
 2 import os
 3 
 4 app = Flask(__name__)
 5 app.config['SECRET_KEY'] = os.urandom(24)
 6 
 7 # 设置session
 8 @app.route('/')
 9 def set():
10     session['username'] = 'liefyuan' # 设置“字典”键值对
11     return 'success'
12 
13 # 读取session
14 @app.route('/get')
15 def get():
16     # session['username']
17     # session.get('username')
18     return session.get('username')
19 
20 if __name__ == '__main__':
21     app.run()
Flask中的session操作

 

3.删除session

Flask中的session操作
 1 #encoding: utf-8
 2 
 3 from flask import Flask,session
 4 import os
 5 
 6 app = Flask(__name__)
 7 app.config['SECRET_KEY'] = os.urandom(24)
 8 
 9 
10 # 设置session
11 @app.route('/')
12 def set():
13     session['username'] = 'liefyuan'
14     return 'success'
15 
16 
17 # 读取session
18 @app.route('/get/')
19 def get():
20     # session['username']
21     # session.get('username')
22     return session.get('username')
23 
24 
25 # 删除session
26 @app.route('/delete/')
27 def delete():
28     print session.get('username')
29     session.pop('username')
30     print session.get('username')
31     return 'success'
32 
33 
34 if __name__ == '__main__':
35     app.run()
Flask中的session操作

 

4.清除session中所有数据

Flask中的session操作
 1 #encoding: utf-8
 2 
 3 from flask import Flask,session
 4 import os
 5 
 6 app = Flask(__name__)
 7 app.config['SECRET_KEY'] = os.urandom(24)
 8 
 9 
10 # 设置session
11 @app.route('/')
12 def set():
13     session['username'] = 'liefyuan'
14     return 'success'
15 
16 
17 # 读取session
18 @app.route('/get')
19 def get():
20     # session['username']
21     # session.get('username')
22     return session.get('username')
23 
24 
25 # 删除session
26 @app.route('/delete')
27 def delete():
28     print session.get('username')
29     session.pop('username')
30     print session.get('username')
31     return 'success'
32 
33 
34 # 清除session中所有数据
35 @app.route('/clear')
36 def clear():
37     print session.get('username')
38     # 清除session中所有数据
39     session.clear
40     print session.get('username')
41     return 'success'
42 
43 if __name__ == '__main__':
44     app.run()
Flask中的session操作

 

三、设置session的过期时间

 如果没有指定session的过期时间,那么默认是浏览器关闭后就自动结束。session.permanent = True在flask下则可以将有效期延长至一个月。下面有方法可以配置具体多少天的有效期。

  • 如果没有指定session的过期时间,那么默认是浏览器关闭后就自动结束
  • 如果设置了session的permanent属性为True,那么过期时间是31天。
  • 可以通过给app.config设置PERMANENT_SESSION_LIFETIME来更改过期时间,这个值的数据类型是datetime.timedelay类型。

使用的需求:

  • 1.在登录网页界面,下面有一个“记住我”选项,如果点击了则设置session的有效期长一点。就是设置这个!
Flask中的session操作
1 # 设置session
2 @app.route('/')
3 def set():
4     session['username'] = 'liefyuan'
5     session.permanent = True # 长期有效,一个月的时间有效
6     return 'success'
Flask中的session操作

 

一种更先进的配置有效期的方法:(比如配置7天有效)

  • 1.引入包:from datetime import timedelta
  • 2.配置有效期限:app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7) # 配置7天有效
  • 3.设置:session.permanent = True
Flask中的session操作
 1 #encoding: utf-8
 2 
 3 from flask import Flask,session
 4 from datetime import timedelta
 5 import os
 6 
 7 app = Flask(__name__)
 8 app.config['SECRET_KEY'] = os.urandom(24)
 9 app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7) # 配置7天有效
10 
11 
12 # 设置session
13 @app.route('/')
14 def set():
15     session['username'] = 'liefyuan'
16     session.permanent = True
17     return 'success'
Flask中的session操作

 

 
 
 

因为flask的session是通过加密之后放到了cookie中。所以有加密就有密钥用于解密,所以,只要用到了flask的session模块就一定要配置“SECRET_KEY”这个全局宏。一般设置为24位的字符。配置方法一般有两种。

配置方法一:

新建一个config.py的文件配置secret_key 
config.py

 1 SECRET_KEY = 'XXXXXXXXX' 

 

然后在主运行文件里面添加config文件里面的内容。 
main.py

Flask中的session操作
1 # encoding: utf-8
2 
3 from flask import Flask,session
4 import config
5 
6 app = Flask(__name__)
Flask中的session操作

 

配置方法二:

直接在主运行文件里面配置。配置config的时候也是和操作字典是一样的 
main.py

Flask中的session操作
1 # encoding: utf-8
2 
3 from flask import Flask,session
4 
5 app = Flask(__name__)
6 app.config['SECRET_KEY'] = 'XXXXX'
Flask中的session操作

 

产生方法

 可以引入OS模块中的产生一个24位的随机字符串的函数,这种方法有个缺点,就是服务器每次启动之后这个SECRET_KEY的值都会变。具体自己体会!

1 import os
2 
3 app.config['SECRET_KEY'] = os.urandom(24) # 随机产生24位的字符串作为SECRET_KEY

 

二、操作session –操作session就如同操作字典!

1.设置session

Flask中的session操作
 1 from flask import Flask,session
 2 import os
 3 
 4 app = Flask(__name__)
 5 app.config['SECRET_KEY'] = os.urandom(24)
 6 
 7 # 设置session
 8 @app.route('/')
 9 def set():
10     session['username'] = 'liefyuan' # 设置“字典”键值对
11     return 'success'
12 
13 if __name__ == '__main__':
14     app.run()
Flask中的session操作

 

2.读取session

 因为session就像字典一样所以,操作它的时候有两种方法:

  • (1)result = session[‘key’] :如果内容不存在,将会报异常
  • (2)result = session.get(‘key’) :如果内容不存在,将返回None

所以,使用第二种方法获取session较好。

Flask中的session操作
 1 from flask import Flask,session
 2 import os
 3 
 4 app = Flask(__name__)
 5 app.config['SECRET_KEY'] = os.urandom(24)
 6 
 7 # 设置session
 8 @app.route('/')
 9 def set():
10     session['username'] = 'liefyuan' # 设置“字典”键值对
11     return 'success'
12 
13 # 读取session
14 @app.route('/get')
15 def get():
16     # session['username']
17     # session.get('username')
18     return session.get('username')
19 
20 if __name__ == '__main__':
21     app.run()
Flask中的session操作

 

3.删除session

Flask中的session操作
 1 #encoding: utf-8
 2 
 3 from flask import Flask,session
 4 import os
 5 
 6 app = Flask(__name__)
 7 app.config['SECRET_KEY'] = os.urandom(24)
 8 
 9 
10 # 设置session
11 @app.route('/')
12 def set():
13     session['username'] = 'liefyuan'
14     return 'success'
15 
16 
17 # 读取session
18 @app.route('/get/')
19 def get():
20     # session['username']
21     # session.get('username')
22     return session.get('username')
23 
24 
25 # 删除session
26 @app.route('/delete/')
27 def delete():
28     print session.get('username')
29     session.pop('username')
30     print session.get('username')
31     return 'success'
32 
33 
34 if __name__ == '__main__':
35     app.run()
Flask中的session操作

 

4.清除session中所有数据

Flask中的session操作
 1 #encoding: utf-8
 2 
 3 from flask import Flask,session
 4 import os
 5 
 6 app = Flask(__name__)
 7 app.config['SECRET_KEY'] = os.urandom(24)
 8 
 9 
10 # 设置session
11 @app.route('/')
12 def set():
13     session['username'] = 'liefyuan'
14     return 'success'
15 
16 
17 # 读取session
18 @app.route('/get')
19 def get():
20     # session['username']
21     # session.get('username')
22     return session.get('username')
23 
24 
25 # 删除session
26 @app.route('/delete')
27 def delete():
28     print session.get('username')
29     session.pop('username')
30     print session.get('username')
31     return 'success'
32 
33 
34 # 清除session中所有数据
35 @app.route('/clear')
36 def clear():
37     print session.get('username')
38     # 清除session中所有数据
39     session.clear
40     print session.get('username')
41     return 'success'
42 
43 if __name__ == '__main__':
44     app.run()
Flask中的session操作

 

三、设置session的过期时间

 如果没有指定session的过期时间,那么默认是浏览器关闭后就自动结束。session.permanent = True在flask下则可以将有效期延长至一个月。下面有方法可以配置具体多少天的有效期。

  • 如果没有指定session的过期时间,那么默认是浏览器关闭后就自动结束
  • 如果设置了session的permanent属性为True,那么过期时间是31天。
  • 可以通过给app.config设置PERMANENT_SESSION_LIFETIME来更改过期时间,这个值的数据类型是datetime.timedelay类型。

使用的需求:

  • 1.在登录网页界面,下面有一个“记住我”选项,如果点击了则设置session的有效期长一点。就是设置这个!
Flask中的session操作
1 # 设置session
2 @app.route('/')
3 def set():
4     session['username'] = 'liefyuan'
5     session.permanent = True # 长期有效,一个月的时间有效
6     return 'success'
Flask中的session操作

 

一种更先进的配置有效期的方法:(比如配置7天有效)

  • 1.引入包:from datetime import timedelta
  • 2.配置有效期限:app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7) # 配置7天有效
  • 3.设置:session.permanent = True
Flask中的session操作
 1 #encoding: utf-8
 2 
 3 from flask import Flask,session
 4 from datetime import timedelta
 5 import os
 6 
 7 app = Flask(__name__)
 8 app.config['SECRET_KEY'] = os.urandom(24)
 9 app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7) # 配置7天有效
10 
11 
12 # 设置session
13 @app.route('/')
14 def set():
15     session['username'] = 'liefyuan'
16     session.permanent = True
17     return 'success'
Flask中的session操作

 

相关文章: