数据库报错重连机制
利用异常捕获来获取mysql断开的报错,然后再重连
1 import MySQLdb as mysql 2 3 class DB: 4 def __init__(self,host,user,passwd,db_name): 5 self.conn = None 6 self.cursor = None 7 self.host = host 8 self.user = user 9 self.passwd = passwd 10 self.db_name = db_name 11 self.connect() 12 def connect(self): 13 self.conn = mysql.connect(host=self.host,user=self.user,passwd=self.passwd,db=self.db_name) 14 self.conn.autocommit(True) 15 self.cursor = self.conn.cursor() 16 17 def execute(self,sql): 18 try: 19 self.cursor.execute(sql) 20 return self.cursor 21 except mysql.OperationalError: 22 print 'reconnect db' 23 self.connect() 24 return self.execute(sql) 25 def list(self,table_name,col_name='*'): 26 sql = 'select %s from %s'%(col_name,table_name) 27 res = self.execute(sql) 28 return res.fetchall() 29 30 31 32 db = DB(host='59.110.12.*',user='****',passwd='*****',db_name='******')
Flask 模板继承
语法:
layout.html文件:
<p>layout2的内容</p> {% block body %} {% endblock %} <p>layout2的其他内容</p>
pageA.html文件
1 {% extends 'layout.html' %} 2 3 4 {% block body %} 5 6 PageA 自己的内容 7 8 {% endblock %}
pageA去继承layout.html的内容,让其在自己的页面显示。另外还可以填丛自己的内容
标题高亮处理
如这些标题需要点击时会被着色。如何处理呢。
class='active' 可以使之有色,我们可以通过js来判断,点击了哪个,给哪个上颜色。
可以通过全局变量location来获取到当前点击的哪个图标
属性选择器
这两段代码实现了高亮显示,和标题的变化
$page经过find后,得到的就是用户/机房/机器,所以要使用.parent来渲染着一层,不用的话,只会用户/机房/机器
被着色。
find的用法:
find() 方法获得当前元素集合中每个元素的后代,通过选择器、jQuery 对象或元素来筛选。
parent的用法:
parent() 获得当前匹配元素集合中每个元素的父元素,使用选择器进行筛选是可选的。
实现所有add工作的统一接口
思路:
无论是添加用户、机房还是机器,都可以用到同一个addapi 去操作数据库
已添加idc机房为例,前端需要传递过来,”需要操作数据库的表“,然后就是“操作标的内容:名称、电话.....”
命令 :'insert into xx (name,mobile) values ("123","asd")'
现在我们把它改变成,无论是添加用户、还是机器都可以用到模式
insert into %s (%s) values (%s)"%(table_name,col_names,values)
如此一来就实现了用户、机房、机器、统一添加的接口了,后面的工作就是要处理一下前端传过来的数据
flask实现的代码:
1 @app.route('/addapi',methods=['POST']) 2 def addapi(): 3 res_dict = request.form.to_dict() 4 #以字典形式接手,格式:{'mobile': u'bb', 'table_name': u'idc', 'name': u'bb'} 5 table_name = res_dict.pop('table_name') 6 #弹出表名字段,这样table_name就是需要操作的表名了 7 #现在res_dict就变成了:{'mobile': u'bb', 'name': u'bb'} 8 #now: 9 #res_dict:{'mobile': u'bb', 'name': u'bb'} 10 #table_name='idc' 11 #然后传递给数据库是处理 12 add_res = db.add(table_name,res_dict) 13 return json.dumps(add_res) 14 #因为flask只支持字符串,所以得dumps下