zoukankan      html  css  js  c++  java
  • pymysql装饰器封装

    pymysql装饰器封装

    def openClose(fun):
        def run(sql=None):
            coon =pymysql.connect(host='localhost' ,port=3306 ,user='root', password='1234qwer', db='test', charset='utf8')
            cursor = coon.cursor()
            try:
                cursor.execute(fun( sql))
                data = cursor.fetchall()
                coon.commit()
                print(data)
            except Exception as e:
                coon.rollback()
                print('运行', str(fun), '方法时出现错误,错误代码:', e)
            finally:
                cursor.close()
                coon.close()
        return run
    
    @openClose
    def runSql(sql=None):
        if sql is None:
            sql = 'select * from students1'
        return sql
    
    runSql()
    runSql(‘select * from students1‘ where name= ‘tom1’)

    添加时间记录功能

    添加时间记录功能
    def openClose(fun):
        def run(sql=None):
            coon =pymysql.connect(host='localhost' ,port=3306 ,user='root', password='1234qwer', db='test', charset='utf8')
            cursor = coon.cursor()
            try:
                start_time = time.time()
                cursor.execute(fun( sql))
                data = cursor.fetchall()
                coon.commit()
                end_time = time.time()
                print('持续时间:'+str(end_time - start_time))
                print(data)
            except Exception as e:
                coon.rollback()
                print('运行', str(fun), '方法时出现错误,错误代码:', e)
            finally:
                cursor.close()
                coon.close()
        return run
    
    @openClose
    def runSql(sql=None):
        if sql is None:
            sql = 'select * from students1'
        return sql
    
    runSql()
    输出:

     open_and_close_db 重要!重要!重要!

    open_and_close_db  重要!重要!重要!
    
    def open_and_close_db(do_sql):
        def wrapper(sql='select * from students1'):
            coon = pymysql.connect(host='localhost' ,port=3306 ,user='root', password='1234qwer', db='test', charset='utf8')
            cursor = coon.cursor()
            start_time = time.time()
            do_sql(cursor, coon, sql)
            cursor.close()
            coon.close()
            end_time = time.time()
            print('持续时间:' + str(end_time - start_time))
        return wrapper
    
    @open_and_close_db
    def do_sql(cursor,coon,sql):
        try:
            cursor.execute(sql)
            data = cursor.fetchall()
            coon.commit()
            print(data)
        except Exception as e:
            coon.rollback()
            print('运行时出现错误,错误代码:', e)
    
    do_sql()
    do_sql("update students1 set name = 'tom99999' where score = 44")

    输出:

  • 相关阅读:
    腾讯2014年实习生招聘笔试面试经历
    Unity MVC框架 StrangeIoC
    Android入门第八篇之GridView(九宫图)
    拓扑排序
    C:打印菱形(自己的方法)
    JSP中Session的使用
    继承Application实现Android数据共享
    使用Java高速实现进度条
    首次启动优美新手指引tip
    递归算法
  • 原文地址:https://www.cnblogs.com/111testing/p/12007249.html
Copyright © 2011-2022 走看看