数据库报错重连机制

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

 import MySQLdb as mysql

 class DB:
def __init__(self,host,user,passwd,db_name):
self.conn = None
self.cursor = None
self.host = host
self.user = user
self.passwd = passwd
self.db_name = db_name
self.connect()
def connect(self):
self.conn = mysql.connect(host=self.host,user=self.user,passwd=self.passwd,db=self.db_name)
self.conn.autocommit(True)
self.cursor = self.conn.cursor() def execute(self,sql):
try:
self.cursor.execute(sql)
return self.cursor
except mysql.OperationalError:
print 'reconnect db'
self.connect()
return self.execute(sql)
def list(self,table_name,col_name='*'):
sql = 'select %s from %s'%(col_name,table_name)
res = self.execute(sql)
return res.fetchall() db = DB(host='59.110.12.*',user='****',passwd='*****',db_name='******')

Flask 模板继承

语法:

layout.html文件:

<p>layout2的内容</p>
{% block body %} {% endblock %} <p>layout2的其他内容</p>

pageA.html文件

     {% extends 'layout.html' %}

     {% block body %}

         PageA 自己的内容

     {% 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实现的代码:

 @app.route('/addapi',methods=['POST'])
def addapi():
res_dict = request.form.to_dict()
#以字典形式接手,格式:{'mobile': u'bb', 'table_name': u'idc', 'name': u'bb'}
table_name = res_dict.pop('table_name')
#弹出表名字段,这样table_name就是需要操作的表名了
#现在res_dict就变成了:{'mobile': u'bb', 'name': u'bb'}
#now:
#res_dict:{'mobile': u'bb', 'name': u'bb'}
#table_name='idc'
#然后传递给数据库是处理
add_res = db.add(table_name,res_dict)
return json.dumps(add_res)
#因为flask只支持字符串,所以得dumps下

flask_web.py

Python 综合应用小项目一的更多相关文章

  1. python网页爬虫小项目开发

    这是我最近接的一个小项目,花了是整整四天多时间. 任务是将http://www.examcoo.com/index/detail/mid/7网站下所有的试卷里的试题全部提取出来,首先按照题型进行分类, ...

  2. 纯Python综合图像处理小工具(3)10种滤镜算法

    <背景>  滤镜处理是图像处理中一种非常常见的方法.比如photoshop中的滤镜效果,除了自带的滤镜,还扩展了很多第三方的滤镜效果插件,可以对图像做丰富多样的变换:很多手机app实现了实 ...

  3. [Python]Python入坑小项目推荐- Flask example minitwit

    知乎上看到的Python练手项目推荐,链接见:https://www.zhihu.com/question/29372574,不知道是我自己懒得看还是理解力不行,这些项目真的是...太大了呀~~~~ ...

  4. python flask实现小项目方法

    本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走. 下载源码,运行 pip install -r requirements.txt 建立环境 python ...

  5. python 的一些小项目

    1.在线教育平台(视频播放) 2.仿微信网页版(语音.视频.文字聊天) 3.高德API + Python 解决租房问题 4.仿知乎 5.Django打造文件分享系统.文件管理.搜索引擎(仿云盘) 6. ...

  6. Python基础--01小项目体现的基础知识

    part1:猜拳游戏 #coding=utf-8 #当有汉语时可能编译器不认识,需要定义代码 ''' 多行注释 写这个程序是为了熟悉python的基本语法 这是第一个小例子包含简单的if判断,循环和输 ...

  7. 纯Python综合图像处理小工具(4)自定义像素级处理(剪纸滤镜)

      上一节介绍了python PIL库自带的10种滤镜处理,现成的库函数虽然用起来方便,但是对于图像处理的各种实际需求,还需要开发者开发自定义的滤镜算法.本文将给大家介绍如何使用PIL对图像进行自定义 ...

  8. 纯Python综合图像处理小工具(1)分通道直方图

    平时工作经常需要做些图像分析,需要给图像分通道,计算各个通道的直方图分布特点,这个事儿photoshop也能做,但是用起来不方便,且需要电脑上安装有PS软件,如果用OpenCV, 更是需要在visua ...

  9. 纯Python综合图像处理小工具(2)图像增强

    <背景> 这次分享的脚本是对图像进行增强处理,包含对图像像素的色彩增强.亮度增强.对比度增强.图像尖锐化等增强操作,主要基于PIL包的lambda和ImageEnhance模块. 使用方法 ...

随机推荐

  1. AJPFX浅析Java数组

    数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信息分组的便利方法.注意:如 ...

  2. css设置文字超出部分显示省略号。。。

    兼容IE/Firefox/Chrome display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;

  3. Object-C反射读取实体属性和值

    举例: 首先定义TestModel如下: @interface TestModel : NSObject @property (nonatomic, strong) NSString *name; @ ...

  4. django之模版的自定义函数

    - 自定义函数 simple_tag a. app下创建templatetags目录 b. 任意xxoo.py文件 c. 创建template对象 register d. __author__ = ' ...

  5. Python3+Selenium3+webdriver学习笔记13(js操作应用:弹出框无效如何处理)

    #!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记13(js操作应用:弹出框无效如何处理)'''from sel ...

  6. BLL-IDAL-DAL的关系

    BLL  实现 IDAL  是一个接口 DAL 实现方法 BLL 调用IDAL 的方法 IDAL中的方法   在 DAL中必须实现 使用的方法  调用BLL的方法就可以

  7. codeforce Gym 100685F Flood (topo排序)

    如果直接模拟水向周围流会TLE,因为某些个结点被重复扩展了多次, 科学做法是topo排序,每次只把入度为0的点放入队列,这样就严格保证了每个结点只被扩展一次. #include<bits/std ...

  8. solver

    slover中有type,用于优化算法的选择,有6种: Stochastic Gradient Descent (type: “SGD”), AdaDelta (type: “AdaDelta”), ...

  9. (转发)InputAccessoryView的使用方法

    转自:http://blog.sina.com.cn/s/blog_45e2b66c01015we9.html UITextFields and UITextViews have an inputAc ...

  10. vue 点击下拉框

    data: { hide:false, zhi:"全部" }, <div class="item"> <div class="c2c ...