会话session ,允许你在不同请求 之间储存信息。这个对象相当于用密钥签名加密的 cookie ,即用户可以查看你的 cookie ,但是如果没有密钥就无法修改它。

from flask import Flask, session, redirect, url_for, escape, request

app = Flask(__name__)

@app.route('/')
def index():
if 'username' in session:
return 'Logged in as %s' % escape(session['username'])
return 'You are not logged in' @app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
session['username'] = request.form['username']
return redirect(url_for('index'))
return '''
<form action="" method="post">
<p><input type=text name=username>
<p><input type=submit value=Login>
</form>
''' @app.route('/logout')
def logout():
# 如果会话中有用户名就删除它。
session.pop('username', None)
return redirect(url_for('index')) # 设置密钥,复杂一点:
app.secret_key = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'

这里用到的 escape() 是用来转义的。如果不使用模板引擎就可以像上例 一样使用这个函数来转义。

利用系统生成一个好的密匙

>>> import os
>>> os.urandom(24)
'\xfd{H\xe5<\x95\xf9\xe3\x96.5\xd1\x01O<!\xd5\xa2\xa0\x9fR"\xa1\xa8'

基于 cookie 的会话的说明: Flask 会把会话对象中的值储存在 cookie 中。在打开 cookie 的情况下,如果你访问会话对象中没有的值,那么会得到模糊的错误信息:请检查 页面 cookie 的大小是否与网络浏览器所支持的大小一致。

最新文章

  1. EasyUI分页
  2. jstack简单使用,定位死循环、线程阻塞、死锁等问题
  3. Minimum Adjustment Cost
  4. BZOJ1579 [Usaco2009 Feb]Revamping Trails 道路升级
  5. Android系统提供了哪些东西,供我们可以开发出优秀的应用程序
  6. HDU2647-Reward(拓扑排序)
  7. &amp;lt;八&amp;gt;阅读&amp;lt;&amp;lt;大话设计模式&amp;gt;&amp;gt;该模型的外观
  8. 如此高效通用的分页存储过程是带有sql注入漏洞的
  9. jQuery Mobile事件,开发全解+完美注释
  10. javaweb面试题
  11. Grunt搭建自动化web前端开发环境--完整流程
  12. 二、.Net 连接mycat
  13. angular2 ng2-validation 表单验证
  14. Android studio 配置file encoding 无效,中文乱码解决办法
  15. windows服务与自启动程序的区别(转载)
  16. pseudo tty破除无法自动输入密码的限制
  17. parseConf(配置文件解析器)
  18. SSH(Struts,Spring,Hibernate)和SSM(SpringMVC,Spring,MyBatis)的区别
  19. jar包、war包
  20. vue.js指令v-model实现方法

热门文章

  1. 洛谷U19464 山村游历(Wander)(LCT,Splay)
  2. 【BZOJ2004】公交线路(动态规划,状态压缩,矩阵快速幂)
  3. 【BZOJ1087】【SCOI2005】互不侵犯(状态压缩,动态规划)
  4. Poj2749:Building roads
  5. Poj2723:Get Luffy Out
  6. [BZOJ1552] [Cerc2007] robotic sort (splay)
  7. 小程序 - swiper除了左右切换还有上下滚动超出屏幕的内容
  8. hadoop第一课
  9. webuploader配置
  10. 关于win系统下Anaconda与TensorFlow的安装相关事宜以及错误:ImportError: No module named &#39;tensorflow&#39;的解决