關於tornado5 0後客戶端使用發生的變化

2021-10-25 20:07:09 字數 2494 閱讀 2869

乙個老的專案今天更新了一下環境,主要是把tornado從版本4公升級到了最新的6.1,出現錯誤,錯誤發生的**如下:

class

forcerefreshhandler

(tornado.web.requesthandler)

:def

get(self)

: tokentype = self.get_argument(

'type'

,'unknown'

)# 獲取token的口令

secret = self.get_argument(

'secret'

,'unknown'

) ret =

if tokentype !=

'unknown'

and secret == config.requestsecret:

request = renderrequest(tokentype)

# 同步客戶端

# response body裡面json格式的字典

resdict = json.loads(response.body.decode(

'utf8'))

logger.info(

'force refresh %s success, response is :%s'

%(tokentype, resdict)

) token = resdict[

'access_token'

]try

:# 存入redis資料庫並設定過期時間

wechatredis.

set(tokentype, token, ex=config.tokenexpiretime)

logger.info(

'set %s in redis success.'

, tokentype)

except exception as e:

logger.error(e)

# 返回請求

))

*** attributeerror: 'httpclient' object has no attribute 'get_argument'
列印self的型別後發現是

這就很迷惑了,這個類不是繼承自tornado.web.requesthandler,怎麼變成了tornado.httpclient.httpclient?

查了一下,由於自tornado 5.0開始,引入了asycio模組,並且和它共享事件迴圈,導致客戶端的使用方式發生了變化,上面**中的同步客戶端需要改為非同步客戶端,具體原因還不清楚

class

forcerefreshhandler

(tornado.web.requesthandler)

:async

defget

(self):.

..# 非同步客戶端

.

參考:

學士後客戶端

前面一篇文章中介紹了學士後的來歷和構成,下面我要告訴大家學士後學員是如何來學習學士後課程,所以本文重點介紹學士後平台,也叫學士後客戶端 下圖為登入視窗 圖1 學士後登入視窗 登入進入後是乙個什麼效果呢,下圖為登入進入到學士後客戶端後的主視窗,你可以看到介面有點類似於遊戲介面,有很多個區域,每個區域中...

關於胖客戶端

目前his系統由於業務複雜,要進行大量的運算,而且his系統在執行一段時間後,資料量激增,資料庫占用空間增長很快,導致his投入執行一兩年後,反應速度急遽下降,在進行乙個簡單的儲存或刪除業務時都要花較長時間,甚至讓使用的醫務人員也難以忍受,這時就應該考慮採用胖客戶端了。所謂胖客戶端,這裡是指將常用的...

關於胖客戶端

目前his系統由於業務複雜,要進行大量的運算,而且his系統在執行一段時間後,資料量激增,資料庫占用空間增長很快,導致his投入執行一兩年後,反應速度急遽下降,在進行乙個簡單的儲存或刪除業務時都要花較長時間,甚至讓使用的醫務人員也難以忍受,這時就應該考慮採用胖客戶端了。所謂胖客戶端,這裡是指將常用的...