码迷,mamicode.com
首页 > 其他好文 > 详细

信息统计DashBoard踩坑总结

时间:2017-08-28 23:53:29      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:mysql   字典   urllib   

    最近根据需求用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,然后输出或者拼接成字符串输出,这样都不会出现中文乱码问题


三、从Tornado获取数据中文乱码的问题

    在实现了web框架之后,在浏览器输入url进行测试,未发现任何问题。但在代码中使用urllib模块调用函数,从接口获取到数据,中文传递会出现乱码,导致无法正确获取到数据,先怀疑是Tornado设置上的问题或者是urllib模块设置上的问题,但各种找都没有解决,后来请教同事解决了这一问题。主要原因是urllib编码问题,解决方法如下:

    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)


本文出自 “10917734” 博客,请务必保留此出处http://10927734.blog.51cto.com/10917734/1959827

信息统计DashBoard踩坑总结

标签:mysql   字典   urllib   

原文地址:http://10927734.blog.51cto.com/10917734/1959827

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!