摘要:跟不同會(huì)話數(shù)據(jù)存儲(chǔ)于服務(wù)器上會(huì)話是指一個(gè)客戶在一個(gè)服務(wù)上從登錄到注銷之間的時(shí)間段會(huì)話中需要存儲(chǔ)的會(huì)話數(shù)據(jù)儲(chǔ)存在服務(wù)器上的一個(gè)臨時(shí)目錄中每個(gè)會(huì)話都被分配了一個(gè)會(huì)話會(huì)話數(shù)據(jù)以的形式存儲(chǔ)并且服務(wù)器會(huì)把會(huì)話數(shù)據(jù)進(jìn)行加密為了進(jìn)行這樣的加密應(yīng)用需要定義
跟Cookie不同, 會(huì)話(Session)數(shù)據(jù)存儲(chǔ)于服務(wù)器上. 會(huì)話是指一個(gè)客戶在一個(gè)web服務(wù)上從登錄到注銷之間的時(shí)間段. 會(huì)話中需要存儲(chǔ)的會(huì)話數(shù)據(jù), 儲(chǔ)存在服務(wù)器上的一個(gè)臨時(shí)目錄中.
每個(gè)會(huì)話都被分配了一個(gè)會(huì)話ID, 會(huì)話數(shù)據(jù)以Cookie的形式存儲(chǔ), 并且服務(wù)器會(huì)把會(huì)話數(shù)據(jù)進(jìn)行加密. 為了進(jìn)行這樣的加密, Flask應(yīng)用需要定義一個(gè)配置: SECRET_KEY.
會(huì)話對(duì)象同樣是一個(gè)字典, 對(duì)應(yīng)的鍵值分別是Session的各個(gè)鍵和對(duì)應(yīng)的值.
例如, 如果設(shè)置一個(gè)會(huì)話變量username:
session[‘username’] = ’admin’
如果要釋放這個(gè)變量, 使用pop()方法:
session.pop("username", None)
下面的代碼簡(jiǎn)單演示了會(huì)話在Flask中如何使用. 訪問(wèn)URL "/" 時(shí), 如果會(huì)話變量username沒(méi)有被設(shè)置, 則提示用戶需要登錄.
@app.route("/") def index(): if "username" in session: username = session["username"] return "Logged in as " + username + "
" + "click here to log out" return "You are not logged in
" + "click here to log in"
如果用戶瀏覽到URL "/login" 上, 對(duì)應(yīng)著login()函數(shù), 因?yàn)榇藭r(shí)請(qǐng)求使用的GET方法, 所以瀏覽器展示出一個(gè)登錄表單. 當(dāng)表單提交時(shí), 會(huì)POST到 "/login" 上, 此時(shí)我們?cè)O(shè)置會(huì)話變量, 并重定向到 "/" 上, 這時(shí), "username"這個(gè)會(huì)話變量就可以找到了.
@app.route("/login", methods = ["GET", "POST"]) def login(): if request.method == "POST": session["username"] = request.form["username"] return redirect(url_for("index")) return """"""
這個(gè)應(yīng)用同樣有個(gè)logout()注銷方法, 這個(gè)方法清除會(huì)話變量"usernmae", 這樣之后, 訪問(wèn)URL "/"就會(huì)展示提示用戶登錄的字樣.
@app.route("/logout") def logout(): # remove the username from the session if it is there session.pop("username", None) return redirect(url_for("index"))
按如下的方式配置密鑰:
from flask import Flask, session, redirect, url_for, escape, request app = Flask(__name__) app.secret_key = "any random string’
然后我們就可以啟動(dòng)應(yīng)用, 觀察各個(gè)url的輸出了.
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/40949.html
摘要:類有一個(gè)方法當(dāng)我們調(diào)用它時(shí)它會(huì)返回一個(gè)響應(yīng)對(duì)象并且按指定的狀態(tài)碼將用戶重定向到另一個(gè)位置方法的原型如下在上面的函數(shù)中我們要重定向的位置狀態(tài)碼會(huì)在頭中發(fā)送給瀏覽器默認(rèn)為用這個(gè)參數(shù)來(lái)初始化響應(yīng)對(duì)象下面是一些標(biāo)準(zhǔn)的狀態(tài)碼重定向的狀態(tài)碼默認(rèn)是也就是 Flask類有一個(gè)redirect()方法. 當(dāng)我們調(diào)用它時(shí), 它會(huì)返回一個(gè)響應(yīng)對(duì)象并且按指定的狀態(tài)碼將用戶重定向到另一個(gè)位置. redirect...
摘要:我們可以讓綁定到某個(gè)的函數(shù)返回比如下面的代碼中函數(shù)會(huì)返回由包裹的字符串但大家看得出這樣直接通過(guò)代碼返回內(nèi)容顯得很笨尤其當(dāng)我們碰到需要對(duì)輸入變量做條件判斷和循環(huán)時(shí)我們經(jīng)常需要做字符串嵌入拼接這種體力活這種情況下我們需要利用自帶的模版引擎我們可 我們可以讓綁定到某個(gè)URL的函數(shù)返回HTML. 比如下面的代碼中, hello()函數(shù)會(huì)返回由包裹的Hello World字符串. from fl...
摘要:一個(gè)應(yīng)用經(jīng)常需要或之類的靜態(tài)文件來(lái)幫助網(wǎng)頁(yè)更好的展示內(nèi)容通常服務(wù)器被用來(lái)提供這種靜態(tài)文件服務(wù)但在程序的開(kāi)發(fā)階段這些文件需要被放置在應(yīng)用根目錄下的文件夾中啟動(dòng)后使用時(shí)前綴以開(kāi)頭在下面的例子中文件中定義了一個(gè)函數(shù)這個(gè)函數(shù)在中可以被一個(gè)按鈕的事件 一個(gè)web應(yīng)用經(jīng)常需要javascript或css之類的靜態(tài)文件來(lái)幫助網(wǎng)頁(yè)更好的展示內(nèi)容. 通常, web服務(wù)器被用來(lái)提供這種靜態(tài)文件服務(wù), 但在...
摘要:之前我們已經(jīng)看到在中我們可以給規(guī)則指定方法對(duì)應(yīng)的函數(shù)可以按字典形式接收表單數(shù)據(jù)然后將這些數(shù)據(jù)輸送到模板中并最終渲染為網(wǎng)頁(yè)在下面的例子中渲染一個(gè)含有表單的網(wǎng)頁(yè)填入到表單的數(shù)據(jù)被到然后觸發(fā)了函數(shù)函數(shù)將表單數(shù)據(jù)組裝起來(lái)放入字典對(duì)象中然后發(fā)送到模板 之前我們已經(jīng)看到在Flask中我們可以給URL規(guī)則指定http方法, 對(duì)應(yīng)的函數(shù)可以按字典形式接收表單數(shù)據(jù), 然后將這些數(shù)據(jù)輸送到模板中并最終渲染...
摘要:協(xié)議是萬(wàn)維網(wǎng)數(shù)據(jù)通信的基礎(chǔ)在這個(gè)協(xié)議上可以對(duì)同一使用不同的方法獲取數(shù)據(jù)下面展示了幾種不同的方法將未經(jīng)加密的信息發(fā)送的服務(wù)器是最通用的方法該方法除了服務(wù)端不返回響應(yīng)內(nèi)容只返回頭信息之外同是一樣的用于向服務(wù)器發(fā)送表單數(shù)據(jù)請(qǐng)求不會(huì)被緩存將所指示的 HTTP協(xié)議是萬(wàn)維網(wǎng)數(shù)據(jù)通信的基礎(chǔ). 在這個(gè)協(xié)議上可以對(duì)同一URL使用不同的方法獲取數(shù)據(jù).下面展示了幾種不同的HTTP方法. GET 將未經(jīng)加...
閱讀 1174·2021-09-27 13:34
閱讀 981·2021-09-13 10:25
閱讀 511·2019-08-30 15:52
閱讀 3450·2019-08-30 13:48
閱讀 648·2019-08-30 11:07
閱讀 2167·2019-08-29 16:23
閱讀 1993·2019-08-29 13:51
閱讀 2328·2019-08-26 17:42