Flask Session 詳解
阿新 • • 發佈:2017-06-13
一個 函數 _for ret name ext blog == logs
會話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 詳解