日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flask Sessions会话

發布時間:2023/12/9 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flask Sessions会话 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

與Cookie不同,會話數據存儲在服務器上。會話是客戶端登錄到服務器并注銷的時間間隔。需要在此會話中進行的數據存儲在服務器上的臨時目錄中。

與每個客戶端的會話分配一個會話ID。會話數據存儲在cookie頂部,服務器以加密方式簽名。對于這種加密,Flask應用程序需要一個定義SECRET_KEY。

會話對象也是一個包含會話變量和關聯值的鍵值對的字典對象。

例如,要設置'username'會話變量,請使用語句 -

Session['username'] = 'admin'

蟒蛇

要刪除會話變量,使用請pop()方法。

session.pop('username', None)

蟒蛇

以下代碼是Flask中會話如何工作的簡單演示'/'.URL => 提示用戶登錄,因為會話變量username沒有設置。

@app.route('/') def index():if 'username' in session:username = session['username']return 'Logged in as ' + username + '<br>' + \"<b><a href = '/logout'>click here to log out</a></b>"return "You are not logged in <br><a href = '/login'></b>" + \"click here to log in</b></a>"

蟒蛇

當用戶瀏覽到URL => '/login'時,login()函數顯示視圖,因為它是通過GET方法調用的,所以打開一個登錄表單。

表單填寫后重新提交到URL => /login,現在會話變量被設置。應用程序被重定向到URL => /。這時找到會話變量:username。

@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><p<<input type = submit value = Login/></p></form>'''

蟒蛇

該應用程序還包含一個logout()視圖函數,它刪除'username'會話變量的值。再次URL跳轉到'/'顯示開始頁面。

@app.route('/logout') def logout():# remove the username from the session if it is theresession.pop('username', None)return redirect(url_for('index'))

蟒蛇

運行應用程序并訪問主頁(確保設置應用程序的secret_key)。

from flask import Flask, session, redirect, url_for, escape, request app = Flask(__name__) app.secret_key = 'any random string’

蟒蛇

完整代碼如下所示 -

from flask import Flask from flask import render_template from flask import request from flask import make_response from flask import Flask, session, redirect, url_for, escape, requestapp = Flask(__name__) app.secret_key = 'fkdjsafjdkfdlkjfadskjfadskljdsfklj'@app.route('/') def index():if 'username' in session:username = session['username']return '登錄用戶名是:' + username + '<br>' + \"<b><a href = '/logout'>點擊這里注銷</a></b>"return "您暫未登錄, <br><a href = '/login'></b>" + \"點擊這里登錄</b></a>"@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><p><input type ="submit" value ="登錄"/></p></form>'''@app.route('/logout') def logout():# remove the username from the session if it is theresession.pop('username', None)return redirect(url_for('index'))if __name__ == '__main__':app.run(debug = True)

蟒蛇

輸出將顯示如下。點擊鏈接“ 點擊這里登錄 ”。

該鏈接將被引導至另一個界面。輸入'admin'。

屏幕會顯示消息“ 登錄用戶名是:admin ”。如下所示 -

?

¥我要打賞

原文出自【易百教程】,商業轉載請聯系作者獲得授權,非商業轉載請保留原文鏈接:https://www.yiibai.com/flask/flask_sessions.html

總結

以上是生活随笔為你收集整理的Flask Sessions会话的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。