国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

flask session組件的使用示例

2020-02-16 00:18:48
字體:
來源:轉載
供稿:網友

一、簡介

flask中session組件可分為內置的session組件還有第三方flask-session組件,內置的session組件功能單一,而第三方的flask-sessoin可支持redis、memcached、文件等進行session的存儲。以下將介紹內置session以及第三方session組件的使用方法以及處理機制。

二、內置session處理機制

Cookie與Session

Cookie:

Cookie意為“甜餅”,是由W3C組織提出,最早由Netscape社區發展的一種機制。目前Cookie已經成為標準,所有的主流瀏覽器如IE、Netscape、Firefox、Opera等都支持Cookie。由于HTTP是一種無狀態的協議,服務器單從網絡連接上無從知道客戶身份。怎么辦呢?就給客戶端們頒發一個通行證吧,每人一個,無論誰訪問都必須攜帶自己通行證。這樣服務器就能從通行證上確認客戶身份了。這就是Cookie的工作原理。

Cookie實際上是一小段的文本信息。客戶端請求服務器,如果服務器需要記錄該用戶狀態,就使用response向客戶端瀏覽器頒發一個Cookie。客戶端瀏覽器會把Cookie保存起來。當瀏覽器再請求該網站時,瀏覽器把請求的網址連同該Cookie一同提交給服務器。服務器檢查該Cookie,以此來辨認用戶狀態。服務器還可以根據需要修改Cookie的內容

Session:

Session是另一種記錄客戶狀態的機制,不同的是Cookie保存在客戶端瀏覽器中,而Session保存在服務器上。客戶端瀏覽器訪問服務器的時候,服務器把客戶端信息以某種形式記錄在服務器上。這就是Session??蛻舳藶g覽器再次訪問時只需要從該Session中查找該客戶的狀態就可以了,實質上session就是保存在服務器端的鍵值對。

如果說Cookie機制是通過檢查客戶身上的“通行證”來確定客戶身份的話,那么Session機制就是通過檢查服務器上的“客戶明細表”來確認客戶身份。Session相當于程序在服務器上建立的一份客戶檔案,客戶來訪的時候只需要查詢客戶檔案表就可以了。

第一次請求,session的創建過程

在flask上下文中介紹了,請求到flask框架會執行wsgi_app方法:

def wsgi_app(self, environ, start_response): ctx = self.request_context(environ) #實例化生成RequestContext對象 error = None  try:  try:   ctx.push() #push上下文到LocalStack中   response = self.full_dispatch_request() #執行視圖函數過程  except Exception as e:   error = e   response = self.handle_exception(e) #處理異常  except:   error = sys.exc_info()[1]   raise  return response(environ, start_response) finally:  if self.should_ignore_error(error):   error = None  ctx.auto_pop(error)  # 刪除LocalStack中的數據

在改方法中會生成一個ctx也就是RequestContext對象:

class RequestContext(object): def __init__(self, app, environ, request=None):  self.app = app # app對象  if request is None:   request = app.request_class(environ)   self.request = request # 封裝request  self.url_adapter = app.create_url_adapter(self.request)  self.flashes = None  self.session = None #一開始的session            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 清新县| 普陀区| 博罗县| 义乌市| 通渭县| 车险| 汝州市| 黔东| 襄城县| 紫阳县| 石首市| 临漳县| 望江县| 博兴县| 马龙县| 清河县| 辽宁省| 海丰县| 遂宁市| 镇原县| 黄梅县| 五大连池市| 宁波市| 花垣县| 汝州市| 二连浩特市| 宣恩县| 馆陶县| 县级市| 临颍县| 江永县| 新竹县| 上高县| 灌阳县| 正安县| 沐川县| 武清区| 阜康市| 大埔县| 丹棱县| 阳曲县|