最近根據需求用Tornado架構在寫了一個從資料庫統計Redis伺服器的數量、記憶體等資訊的接口,并寫了一個從接口擷取資料并推送至grafana進行展示的程式。現在已經實作所有功能,現将實作過程中遇到的問題總結出來,以便後續參考。歡迎批評指正,共同學習進步!
一、資料庫操作中的坑
1、mysql查詢中想要傳入變量時like的使用
在資料庫的查詢操作中想要查找包含北京二字的字段,like的用法為:
idc like %北京%
在python操作mysql時,需要拼接字元串然後進行處理,這時的用法為:
idc like '%%%%%s%%%%'
2、mysql嵌套查詢中{ }的使用
在之前的mysql嵌套查詢中我試圖通過拼接字元串來實作,後來發現有如下用法:
ctime = '{y_day}'
其中y_day即為需要傳入的變量
二、字典相關
在從資料庫中取到資料存入字典為unicode。如果直接列印字典為unicode編碼,漢字無法識别,有兩種解決辦法:
for key,value in result_dic.items():
首先通過上述方法取到字典的key、value,然後輸出或者拼接成字元串輸出,這樣都不會出現中文亂碼問題
api_domain = '10.100.100.100:8080'
args_dict = {'type': 'mechine', 'pool_name': 'none', 'idc': '北京'}
url_v = urllib.urlencode(args_dict)
url = "http://%s/?%s" % (api_domain, url_v)
print url
response = urllib2.urlopen(url)
data = response.read()
print json.dumps(data)