1. 程式人生 > >Flask Session 詳解

Flask Session 詳解

一個 函數 _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 詳解