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")

    输出:

  • 相关阅读:
    一个误操作,导致mysql所有表打不开,我是不是应该删库跑路?非著名喷子
    SqlServer 一些跟时间相关的东西
    C# 在代码里调用其他Webapi
    Typroa + smms-uploader 实现上传图片到 SM.MS 图床
    Redis哨兵模式
    给 Git 仓库瘦身,删除大文件的版本控制
    修复 UEditor 上传视频的相关问题
    MongoDB 海量数据高效读写
    .NET 5中 Autofac 的使用
    Dapper 的 AspNetCore 扩展包
  • 原文地址:https://www.cnblogs.com/111testing/p/12007249.html
Copyright © 2011-2022 走看看