Python Web開發 製作flash變數

2021-10-11 00:12:08 字數 1147 閱讀 8589

flash變數就是快閃儲存器,一次性變數。使用者為其賦值,在任意時刻使用之後,變數就會自動消失。適合在web開發中作為「錯誤提示」等使用。

知道原理了實際上就很好寫程式了,flash變數核心其實就是:在獲取值之後就刪除之。

由於flash變數可能有多個,所以我可以用乙個類似字典的類來儲存,那麼我就直接編寫乙個子類基礎dict就好了。

flash變數應該是乙個全域性變數,所以需要儲存為python全域性變數或session中,我這裡就儲存在session裡。

簡單實現了這樣的乙個類:

class flash(dict):

def __init__(self, request):

dict.__init__(self)

self.request = request

def __getitem__(self, item):

item = "flash_%s" % item

if item in self.request.session:

value = self.request.session.get(item)

self.request.session.delete(item)

else:

value = ""

return value

def get(self, k, d = none):

return self.__getitem__(k)

def __delattr__(self, item):

item = "flash_%s" % item

self.request.session.delete(item)

def __setitem__(self, key, value):

key = "flash_%s" % key

self.request.session[key] = value

重寫dict類的__getitem__方法,從session中獲取了值後,就刪除它。

重寫__setitem__,將值儲存在session中。

重寫__delattr__,刪除session。

基本就完全繼承並重寫了dict的大部分功能,原本的dict類已經消失了。

使用時,就直接把flash變數當做乙個普通的dict去用就ok了。

pythonweb開發 Python Web開發

參考原文 wsgi介面 wsgi web server gateway inte ce 是乙個介面,用來遮蔽底部的細節 如tcp的建立連線,http原始請求和響應格式等 wsgi介面定義非常簡單,只需要web開發者實現乙個函式,就可以響應客戶端的http請求。這個函式有兩個引數 environ 包含...

python web開發框架

django python web應用開發框架 django 應該是最出名的python框架,gae甚至erlang都有框架受它影響。django是走大而全的方向,它最出名的是其全自動化的管理後台 只需要使用起orm,做簡單的物件定義,它就能自動生成資料庫結構 以及全功能的管理後台。diesel 基...

Python Web開發框架

python中的web框架 flask例程 可重用成熟,穩健 可擴充套件性良好 提高開發速度 web框架中的概念 大包大攬的django 優點 完美文件。全套解決方案 cache,session,orm 強大的url路由配置 自助管理後台 缺點 系統緊耦合 自帶的orm不夠強大 template比較...