乙個老的專案今天更新了一下環境,主要是把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投入執行一兩年後,反應速度急遽下降,在進行乙個簡單的儲存或刪除業務時都要花較長時間,甚至讓使用的醫務人員也難以忍受,這時就應該考慮採用胖客戶端了。所謂胖客戶端,這裡是指將常用的...