zoukankan      html  css  js  c++  java
  • Python 综合应用小项目一

    数据库报错重连机制

    利用异常捕获来获取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='******')
    View Code

    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下
    flask_web.py
  • 相关阅读:
    【PAT甲级】1043 Is It a Binary Search Tree (25 分)(判断是否为BST的先序遍历并输出后序遍历)
    Educational Codeforces Round 73 (Rated for Div. 2)F(线段树,扫描线)
    【PAT甲级】1042 Shuffling Machine (20 分)
    【PAT甲级】1041 Be Unique (20 分)(多重集)
    【PAT甲级】1040 Longest Symmetric String (25 分)(cin.getline(s,1007))
    【PAT甲级】1039 Course List for Student (25 分)(vector嵌套于map,段错误原因未知)
    Codeforces Round #588 (Div. 2)E(DFS,思维,__gcd,树)
    2017-3-9 SQL server 数据库
    2017-3-8 学生信息展示习题
    2017-3-5 C#基础 函数--递归
  • 原文地址:https://www.cnblogs.com/nopnog/p/7207297.html
Copyright © 2011-2022 走看看