数据库报错重连机制

利用异常捕获来获取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. jdk动态代理和cglib动态代理的区别

    一.原理区别: java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理. 而cglib动态代理是利用asm开源包,对代理对象类的class文件 ...

  2. 微信小程序中的target和currentTarget区别

    最近在学习微信小程序相关知识,其中提到了两个属性target和currentTarget,其中target是指向触发事件的元素(常见于事件委托中),而currentTarget是指向捕获事件的元素(即 ...

  3. /pentest/enumeration/irpas/itrace

    /pentest/enumeration/irpas/itrace 追踪防火墙内部路由

  4. copyout函数

    copyout Kernel Service   Purpose Copies data between user and kernel memory. Syntax #include <sys ...

  5. Jquery 如何获取表单中的全部元素的值

    1.使用var formData = $(formId).serialize()获取:获取数据的格式为url参数形式的字符串.例如:id=100&name=张三   2.服务器端使用parse ...

  6. [学习总结] python语言学习总结 (二)

    1.python中的拆包 之前就只写了*可以是未知数量的参数,**可以传入未知数量命名参数.这次详细记下拆包. def f1(a, *l): print(a) # 不拆包 print(l) # 拆包 ...

  7. ansible 任务委派 delegate_to

    ansible 任务委派功能delegate_to run_noce: true  在一个主机上面只执行一次一个任务. ,如果没有这个参数的话,每个playbook中的组的主机都会执行一次. 我们有的 ...

  8. VS开发软winform软件的更改用户使用权限

    在使用软件的过程中,我们经常需要使用的软件拥有管理员权限,在开发的过程中,本人就遇到了应为权限不足的问题导致软件不能正常使用的状况. 在此我来记录我遇到的问题. 为开发的软件赋予管理员权限 https ...

  9. sqlserver的实例名忘记了

    电脑图标右击/管理/服务和应用程序/服务 也可以直接services.msc打开 打开服务,找到sqlserver的服务,这个服务括号中的名称就是实例名了,但是要加上localhost,也就是loca ...

  10. A. Vitya in the Countryside

    A. Vitya in the Countryside time limit per test 1 second memory limit per test 256 megabytes input s ...