亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Flask框架中的session設置詳解

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

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會幫我們創(chuàng)建一個字典{"username":"stzz"},然后通過secret_key + 時間戳 + 簽名經過加密生成一個字符串。

session反序列化機制

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

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

相關文章

  • C# DataGridView行列轉換的具體實現

    C# DataGridView行列轉換的具體實現

    本文主要介紹了C# DataGridView行列轉換的具體實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • 使用Python3編寫抓取網頁和只抓網頁圖片的腳本

    使用Python3編寫抓取網頁和只抓網頁圖片的腳本

    這篇文章主要介紹了使用Python3編寫抓取網頁和只抓網頁圖片的腳本,使用到了urllib模塊,需要的朋友可以參考下
    2015-08-08
  • python matlibplot繪制多條曲線圖

    python matlibplot繪制多條曲線圖

    這篇文章主要為大家詳細介紹了python matlibplot繪制多條曲線圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • python中如何進行連乘計算

    python中如何進行連乘計算

    在本篇文章里小編給大家分享的是關于python連乘計算的代碼,有興趣的朋友們可以參考學習下。
    2020-05-05
  • Python中進行表單處理的方法詳解

    Python中進行表單處理的方法詳解

    這篇文章主要為大家詳細介紹了Python中進行表單處理的方法,分別是利用Flask和Flask-WTF處理表單,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-12-12
  • Python+PyQt5實現數據庫表格動態(tài)增刪改

    Python+PyQt5實現數據庫表格動態(tài)增刪改

    這篇文章主要為大家介紹如何利用Python中的PyQt5模塊實現對數據庫表格的動態(tài)增刪改,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-03-03
  • 跟老齊學Python之玩轉字符串(2)

    跟老齊學Python之玩轉字符串(2)

    上一篇文章章中已經講到連接兩個字符串的一種方法,本文繼續(xù)講訴連接字符串的方法2,字符串復制,字符串長度,字符大小寫的轉換,希望對大家有所幫助。
    2014-09-09
  • django 常用orm操作詳解

    django 常用orm操作詳解

    下面小編就為大家?guī)硪黄猟jango 常用orm操作詳解。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Python爬蟲爬取新聞資訊案例詳解

    Python爬蟲爬取新聞資訊案例詳解

    這篇文章主要介紹了Python爬蟲爬取新聞資訊案例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Python編程super應用場景及示例解析

    Python編程super應用場景及示例解析

    最近有粉絲向我咨詢super相關的問題,說網上搜索到的教程不夠通俗易懂,看了之后還是不太理解。所以在這里基于我自己的理解來講解一下super
    2021-10-10

最新評論