python上下文小记
python访问数据库是日常编程中经常使用的,一般的代码如下:
可以看出样例代码还是比较多的,有没有办法优化一下呢?有!
def send_msgs(conn_id=None, **kwargs): conn = get_mysql_conn(conn_id) cursor = conn.cursor() sql_db = '''select count(1) from table)''' cursor.execute(sql_db) result = cursor.fetchone() cursor.close() conn.close()
采用python提过的上下文方式,访问数据库就可以这样写:
def send_msgs(conn_id=None, **kwargs): with db_conn(conn) as cur: cur.execute(sql) r1=cur.fetchone()
缩减了一半以上的代码,而且还可以自动关闭,db_conn怎么写?就是实现下面这样一个类就可以了:
class db_conn(object): def __init__(self, conn_id): self.conn = MySqlHook.get_connection(conn_id=conn_id).get_hook().get_conn() self.cur = self.conn.cursor() def __enter__(self): return self.cur def __exit__(self, exc_type, exc_value, exc_trace): self.conn.commit() self.cur.close() self.conn.close()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗