iT邦幫忙

0

伸縮自如的Flask [day5] session

假設,你今天寫了一個頁面或是儲存了一些簡單的狀態或資訊,call了另外一個API或是跳轉到不同頁面並且想要保持剛才的資訊或是狀態呢?
也許你該考慮看看session。
https://github.com/wilsonsujames/flask_tutorial/blob/main/Flask_with_session/app.py

from flask import Flask, session, redirect, url_for, request,jsonify
import os 

app = Flask(__name__)
app.secret_key = os.urandom(20)

@app.route('/')
def index():
    session['username'] ='bob'
    session['weight'] ='60kg'
    session['height'] ='172cm'

    return jsonify({'status':'using session success'})

@app.route('/getinfo')
def getinfo():
    print(session)
    # 這裡可以發現session資料為字典型態
    username=session.get('username')
    weight=session.get('weight')
    height=session.get('height') 
    return jsonify({'username':username,'weight':weight,'height':height})

if __name__ == '__main__':
    app.run(debug=True, port=8591)

執行之後我們到達根路由可以看到回傳的json資訊,到達localhost:8591/getinfo可以看見回傳了儲存於session的資訊,我們也把session印出來了,可以發現session為字典的型態。

假設要去除某個session資訊,我們也可以:

session['xxx'] = False

是的,未來跳轉頁面時,你可以將特定資訊保留下來,以執行你app的功能了。

注意
請勿將重要資訊,像是會員密碼儲存於session。另外在生產模式可以將secrect key利用export(linux)、set(windows)來設定還境變數,再利用os.environ.get來獲取環境變數的值。

import os
SECRET_KEY = os.environ.get("SECRET_KEY")


尚未有邦友留言

立即登入留言