最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flask框架中的session設(shè)置詳解

 更新時間:2023年02月23日 11:03:16   作者:雙天至尊-王天龍  
Flask是一個使用Python編寫的輕量級Web應(yīng)用框架。其WSGI工具箱采用Werkzeug,模板引擎則使用 Jinja2 。Flask使用BSD授權(quán)。Flask也被稱為 “microframework”,因為它使用簡單的核心,用extension增加其他功能

Flask中的session

session設(shè)置

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

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

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

session的方法:

  • session['username'] = 'stzz';設(shè)置session
  • session.pop("username",None);刪除session

關(guān)于session的設(shè)置

app.session_cookie_name = "I am not Session"

其他配置

'SESSION_COOKIE_NAME':                  'session',  # 設(shè)置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)  
# 設(shè)置session的過期時間

cookies中的session

cookies 中 session 存儲的是通過 secret_key 加密后的 key , 通過這個 key 從flask程序的內(nèi)存中找到用戶對應(yīng)的session信息

session序列化機制

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

session反序列化機制

當(dāng)客戶端發(fā)送請求時,request請求會帶上cookie,也就是session中的數(shù)據(jù)存儲在其中,這個數(shù)據(jù)就是之前加密后的字符串,發(fā)送到后端后,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 "設(shè)置session成功?。?!"
@user_bp.route("/getSession")
def getSession():
    username = session.get("name")
    if username:
        return username
    else:
        return "用戶未登錄!!!"

到此這篇關(guān)于Flask框架中的session設(shè)置詳解的文章就介紹到這了,更多相關(guān)Flask session內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 通過實例解析Python return運行原理

    通過實例解析Python return運行原理

    這篇文章主要介紹了通過實例解析Python return運行原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Python入門教程(二十七)Python的日期

    Python入門教程(二十七)Python的日期

    Python 中的日期不是其自身的數(shù)據(jù)類型,導(dǎo)入名為 datetime 的模塊,把日期視作日期對象進(jìn)行處理,有許多方法可以返回有關(guān)日期對象的信息,需要的朋友可以參考下
    2023-04-04
  • Python fire模塊(最簡化命令行生成工具)的使用教程詳解

    Python fire模塊(最簡化命令行生成工具)的使用教程詳解

    Python Fire是谷歌開源的一個第三方庫,用于從任何Python對象自動生成命令行接口(CLI),可用于如快速拓展成命令行等形式。本文將通過實例為大家詳細(xì)說說fire模塊的使用,感興趣的可以了解一下
    2022-10-10
  • Pandas?時間序列分析中的resample函數(shù)

    Pandas?時間序列分析中的resample函數(shù)

    這篇文章主要介紹了Pandas?時間序列分析中的resample函數(shù),Pandas?中的resample函數(shù)用于各種頻率的轉(zhuǎn)換工作,下面我們就來看看其的參數(shù)、相關(guān)資料等,需要的小伙伴可以參考一下,希望給你帶來幫助
    2022-02-02
  • selenium+python自動化測試之鼠標(biāo)和鍵盤事件

    selenium+python自動化測試之鼠標(biāo)和鍵盤事件

    這篇文章主要介紹了selenium+python自動化測試之鼠標(biāo)和鍵盤事件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Python比較文件夾比另一同名文件夾多出的文件并復(fù)制出來的方法

    Python比較文件夾比另一同名文件夾多出的文件并復(fù)制出來的方法

    這篇文章主要介紹了Python比較文件夾比另一同名文件夾多出的文件并復(fù)制出來的方法,涉及Python針對文件與文件夾的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • python實現(xiàn)簡單的名片管理系統(tǒng)

    python實現(xiàn)簡單的名片管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)名片管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • django 多級項目目錄的示例代碼

    django 多級項目目錄的示例代碼

    本文主要介紹了django 多級項目目錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-07-07
  • python常用的時間模塊之datetime模塊示例詳解

    python常用的時間模塊之datetime模塊示例詳解

    這篇文章主要介紹了python常用的時間模塊之datetime模塊,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Kears+Opencv實現(xiàn)簡單人臉識別

    Kears+Opencv實現(xiàn)簡單人臉識別

    這篇文章主要為大家詳細(xì)介紹了Kears+Opencv實現(xiàn)簡單人臉識別,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評論

大港区| 昌黎县| 馆陶县| 潼南县| 饶平县| 高要市| 巴中市| 周至县| 安康市| 驻马店市| 浦北县| 宁远县| 桓台县| 佳木斯市| 南投市| 新蔡县| 昌都县| 安溪县| 鹤山市| 黄浦区| 抚远县| 营山县| 泸定县| 香格里拉县| 余江县| 广河县| 阿勒泰市| 昌平区| 景东| 丰宁| 曲麻莱县| 栾城县| 洛南县| 鄄城县| 磐石市| 湟中县| 怀来县| 合阳县| 德兴市| 广河县| 西吉县|