91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flask框架中的session怎么設置

發布時間:2023-02-23 14:35:32 來源:億速云 閱讀:94 作者:iii 欄目:開發技術

這篇文章主要介紹了Flask框架中的session怎么設置的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Flask框架中的session怎么設置文章都會有所收獲,下面我們一起來看看吧。

    Flask中的session

    session設置

    Flask除請求對象之外,還有一個 session 對象。

    它允許你在不同請求間存儲特定用戶的信息。它是在 Cookies 的基礎上實現的,并且對 Cookies 進行密鑰簽名要使用會話,你需要設置一個密鑰。

    我們知道,在django中的session是存儲在服務器中的數據庫中的,也就是django_session表中,而flask中的session是交由客戶端保管的,也就是存儲在本地的cookie中。

    session的方法:

    • session['username'] = 'stzz';設置session

    • session.pop("username",None);刪除session

    關于session的設置

    app.session_cookie_name = "I am not Session"

    其他配置

    'SESSION_COOKIE_NAME':                  'session',  # 設置session的名字
    'SESSION_COOKIE_DOMAIN':                None,
    'SESSION_COOKIE_PATH':                  None,
    'SESSION_COOKIE_HTTPONLY':              True,
    'SESSION_COOKIE_SECURE':                False,
    'SESSION_REFRESH_EACH_REQUEST':         True,  # 是否每次都跟新
    'PERMANENT_SESSION_LIFETIME':           timedelta(days=31)  
    # 設置session的過期時間

    cookies中的session

    cookies 中 session 存儲的是通過 secret_key 加密后的 key , 通過這個 key 從flask程序的內存中找到用戶對應的session信息

    session序列化機制

    當我們開啟session時,設置session["username"]="stzz",flask會幫我們創建一個字典{"username":"stzz"},然后通過secret_key + 時間戳 + 簽名經過加密生成一個字符串。

    session反序列化機制

    當客戶端發送請求時,request請求會帶上cookie,也就是session中的數據存儲在其中,這個數據就是之前加密后的字符串,發送到后端后,flask會通過secret_key去解密session中的加密字符串,從而獲取{"username":"stzz"}從而來驗證是否登錄。

    session的使用和驗證

    from flask.blueprints import Blueprint
    from flask import Response, session
    from flask_restful import fields, marshal
    from flask_sqlalchemy.query import Query
    from sqlalchemy import or_, and_
    from ..model.UserModel import User
    import json
    user_bp = Blueprint("user", __name__, url_prefix="/user")
    user_fields = {
        "id": fields.Integer,
        "username": fields.String,
        "password": fields.String,
        "age": fields.Integer
    }
    @user_bp.route("/hello")
    def hello():
        result = User.query.filter(or_(User.username.startswith("王"), and_(User.username == "王天祥", User.age > 21)))
        return marshal(result.all(), fields=user_fields)
    @user_bp.route("/setSession", methods=["GET", "POST"])
    def setSession():
        session["name"] = "STZZ"
        return "設置session成功!!!"
    @user_bp.route("/getSession")
    def getSession():
        username = session.get("name")
        if username:
            return username
        else:
            return "用戶未登錄!!!"

    關于“Flask框架中的session怎么設置”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Flask框架中的session怎么設置”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    黄石市| 株洲市| 永康市| 孟连| 大石桥市| 丰顺县| 黄冈市| 华宁县| 岗巴县| 富平县| 大埔区| 梓潼县| 来凤县| 永宁县| 东安县| 克山县| 中卫市| 高安市| 紫阳县| 肥东县| 祥云县| 巴彦淖尔市| 哈巴河县| 建阳市| 晋宁县| 鄂托克旗| 临沧市| 乌拉特中旗| 平塘县| 台东市| 中超| 葵青区| 比如县| 玛沁县| 墨江| 耿马| 敦煌市| 南郑县| 上林县| 恩施市| 通道|