WERKZEUG之WSGI閱讀筆記

2022-09-22 03:51:10 字數 1495 閱讀 4776

pep3333指出,wsgi(web server gateway inte***ce)是web伺服器和web框架或web應用之間建立的一種簡單通用的介面規範。有了wsgi這份介面規範,在web開發的過程中,能更加自由的選擇伺服器端和框架;在伺服器端和框架的開發過程能夠分離開來,不用過多的考慮雙方具體的實現,使得伺服器端和框架開發者能夠專心自己領域的開發工作。

實現乙個服務端wsgi serve: 

#

!/usr/bin/python

#coding=utf-8

def environ={} #

設定環境資訊

def start_response(status,headers): #

define callback function

pass

def write(data): #

訪問result iterator object

pass

for data in

result:

write(data)

middleware

middleware 即是服務端又是應用端。那麼就將滿足服務端條件:能夠配置envion,具有start_response並將其傳遞給應用程式呼叫應用程式;應用端條件:可呼叫,接收兩個引數,返回迭代物件。

def

callable function

url=environ['

path_info']

get the view function

return

result

return

class

dispath():

def

def__call__

(self,environ,start_response):

#do sometiong

自身可呼叫

從函式的角度實現的中介軟體和從類的角度實現的中介軟體,類的角度實現的中介軟體更加直觀明顯。

#

!/usr/bin/python

#coding=utf-8

可呼叫接收兩個引數

status='

200 ok

'headers=[('

content-type

','text/plain

')] #

設定響應狀態碼和響應資訊

start_response(status,headers)

#呼叫**函式

return ["

hello world

"] #

返回body 可迭代物件

WSGI閱讀筆記二

從wsgi原始碼中可以看到,第乙個函式是get current url,原始碼如下,仔細分析一下這段 的作用 def get current url environ,root only false,strip querystring false,host only false,trusted hos...

Werkzeug原始碼閱讀筆記 三

這次主要講下werkzeug中的local.原始碼在werkzeug local.py 在python中,狀態是儲存在物件中。thread local是一種特殊的物件,它是對執行緒隔離的。所謂對執行緒隔離,是指每乙個執行緒對乙個thread local物件進行修改,是不會影響到其他執行緒的。這就好比...

Flask學習記錄之使用Werkzeug雜湊密碼

資料庫中直接存放明文密碼是很危險的,werkzeug庫中的security能夠方便的實現雜湊密碼的計算 security庫中 generate password hash password,method.函式將原始密碼作為輸入,以字串形式輸出密碼的雜湊值 check password hash ha...