? ? ? ?上次说了框架,这次放代码。先来回顾一下框架。。。
? ? ? ?先来看看zabbix_data.py。
? ? ? ?用zabbixAPI调取主机组、主机、监控项、历史数据,这些其实和以前用MySQLdb包直接调取数据库时的步骤是一样的。并且同样存在调取时间慢的问题,多线程并没有改善困境,只能考虑缓存技术了。
? ? ? ?然后是这些数据如何通过Django框架展现到前端页面。我们来看看views.py文件中的一段代码。
? ? ? ?函数db_handle一开始只是为了测试向Django数据库里写数据,后来就用于注册用户名密码,是个很粗鄙的页面,目前只供后台人员使用。函数echarts就是用的pyecharts包,但不会调自适应页面,就放弃了。函数index是主页函数,目前只是测试了后端到前端的数据传递,注意返回响应里传递了keys和values。其他操作类的动作还不知是应该写在这里,还是用js写。函数login实现登陆。
? ? ? ?主要就是数据从后端到前端的实现,我们再来看看主页上的html代码片段。
? ? ? ?注意test1,在网页上声明一个定高100%宽的div,它的外层是名为span9的来自模板的div,这个外层有自适应网页大小的功能,这样一来在这个模块里建立echarts图表就可以自适应网页宽度了。后面再插入一段echarts图表的js代码。另外注意{{keys|safe}}和{{values|safe}},就是从views.py里传来的数据,是不是很神奇,这样后端数据就传到了前端。
? ? ? ?这只是说明这种方法可行,之后才是具体的项目开发。前端的布局、中间各种操作响应、后端读取数据优化等等需要大量代码编写,就不深入了。