python和数据库小项目_Python 综合应用小项目一

数据库报错重连机制

利用异常捕获来获取mysql断开的报错,然后再重连

ContractedBlock.gif

ExpandedBlockStart.gif

1 importMySQLdb as mysql2

3 classDB:4 def __init__(self,host,user,passwd,db_name):5 self.conn =None6 self.cursor =None7 self.host =host8 self.user =user9 self.passwd =passwd10 self.db_name =db_name11 self.connect()12 defconnect(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 defexecute(self,sql):18 try:19 self.cursor.execute(sql)20 returnself.cursor21 exceptmysql.OperationalError:22 print 'reconnect db'

23 self.connect()24 returnself.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 returnres.fetchall()29

30

31

32 db = DB(host='59.110.12.*',user='****',passwd='*****',db_name='******')

View Code

Flask 模板继承

语法:

layout.html文件:

layout2的内容

{% block body %}

{% endblock %}

layout2的其他内容

pageA.html文件

1 {% extends 'layout.html' %}2

3

4 {% block body %}5

6 PageA 自己的内容7

8 {% endblock %}

pageA去继承layout.html的内容,让其在自己的页面显示。另外还可以填丛自己的内容

标题高亮处理

1173149-20170720095324177-285038441.png

如这些标题需要点击时会被着色。如何处理呢。

class='active' 可以使之有色,我们可以通过js来判断,点击了哪个,给哪个上颜色。

1173149-20170720095811536-1445667504.png

可以通过全局变量location来获取到当前点击的哪个图标

属性选择器

1173149-20170720100250021-862704302.png

1173149-20170720100907818-690686520.png

这两段代码实现了高亮显示,和标题的变化

$page经过find后,得到的就是用户/机房/机器,所以要使用.parent来渲染着一层,不用的话,只会用户/机房/机器

被着色。

find的用法:

find() 方法获得当前元素集合中每个元素的后代,通过选择器、jQuery 对象或元素来筛选。

1173149-20170720101426724-1866015952.png

parent的用法:

parent() 获得当前匹配元素集合中每个元素的父元素,使用选择器进行筛选是可选的。

1173149-20170720102414771-284300729.png

实现所有add工作的统一接口

思路:

无论是添加用户、机房还是机器,都可以用到同一个addapi 去操作数据库

已添加idc机房为例,前端需要传递过来,”需要操作数据库的表“,然后就是“操作标的内容:名称、电话.....”

命令 :'insert into xx (name,mobile) values ("123","asd")'

现在我们把它改变成,无论是添加用户、还是机器都可以用到模式

insert into %s (%s) values (%s)"%(table_name,col_names,values)

如此一来就实现了用户、机房、机器、统一添加的接口了,后面的工作就是要处理一下前端传过来的数据

flask实现的代码:

ContractedBlock.gif

ExpandedBlockStart.gif

1 @app.route('/addapi',methods=['POST'])2 defaddapi():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 returnjson.dumps(add_res)14 #因为flask只支持字符串,所以得dumps下

flask_web.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值