Python aiohttp中介軟體示例

2021-10-06 13:38:49 字數 3533 閱讀 1410

# 獲取表單

data =

await self.request.post(

)# 獲取url // 中的引數

user_id = self.request.match_info.get(

'user_id'

)# 獲取json

data =

await self.request.json(

)# 獲取get引數

name = self.request.query.get(

"name"

)

aiohttp 中介軟體

# 004是這有這個有用

@middleware_004

async

deftest

(request)

:print

('handler function called'

)return web.response(text=

"hello"

)# 這裡註冊的中介軟體是全域性的

[middleware1, middleware2,logger_factory_003]

)'/'

, test)

"0.0.0.0"

,port=

"8888"

)

middleware 1 called

middleware 2 called

i am logger factory 003

>>

>>

>>

>>

>

004handler function called

<<

<<

<<

<<

<

004middleware 2 finished

middleware 1 finished

如果是類view, 全域性註冊的中介軟體不需要更改,只有004號直接作用到view上的需要改.

如***摘錄的**

:# jwt.exceptions.decodeerror token 格式不對

# jwt.exceptions.invalidsignatureerror 秘鑰key不對

# jwt.exceptions.invalidalgorithmerro 演算法不一致

# jwt.exceptions.expiredsignatureerror token過期

@wraps(func)

async

definner

(cls,

*args,

**kwargs)

: jwt_token = cls.request.query.get(

'token')if

not jwt_token:

data =

return web.json_response(data=data, dumps=json_dumps)

try:

jwt_payload = jwt.decode(jwt_token, jwt_secret_key, algorithms=

['hs256'])

"jwt_token"

]= jwt_payload

return

await func(cls,

*args,

**kwargs)

# 正常呼叫並返回

except

( jwt.exceptions.decodeerror,

jwt.exceptions.invalidsignatureerror,

jwt.exceptions.invalidalgorithmerror

)as e:

data =

return web.json_response(data=data, dumps=json_dumps)

except jwt.exceptions.expiredsignatureerror as e:

data =

return web.json_response(data=data, dumps=json_dumps)

return inner

Python aiohttp多執行緒併發爬蟲

使用者 大綱正則 patternoutline 章節頁面正則 patternbodyset tklist 2064 獲得大綱鏈結 def getoutline url,patternoutline res requests.get url,headers random.sample headers,...

xpath 省略中間路徑 中間路徑方法

xpath 省略中間路徑 在我的職業生涯的大部分時間裡,我一直在從事軟體開發工作,因此,即使我不止一次涉足解決方案工程,我還是把自己視為軟體開發人員 或軟體架構師 這肯定會對我如何看待架構景觀產生影響,但是我會盡量保持客觀。從歷史上看,提供滿足業務需求的軟體解決方案有兩種方法 我的軟體開發人員方面以...

python屬於中介軟體嗎 python中介軟體

django的中介軟體是全域性範圍內處理django的請求和響應的框架級別的鉤子。定義from django.utils.deprecation importmiddlewaremixinclassmd1 middlewaremixin defprocess request self,request...