码迷,mamicode.com
首页 > 其他好文 > 详细

Flask Session 详解

时间:2017-06-13 19:48:42      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:session   redirect   模板   存在   username   rom   form   action   检查   

会话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 的大小是否与网络浏览器所支持的大小一致。

Flask Session 详解

标签:session   redirect   模板   存在   username   rom   form   action   检查   

原文地址:http://www.cnblogs.com/Erick-L/p/7003048.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!