千家信息网

python中的with语句实例用法

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要介绍"python中的with语句实例用法",在日常操作中,相信很多人在python中的with语句实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"p
千家信息网最后更新 2025年01月16日python中的with语句实例用法

这篇文章主要介绍"python中的with语句实例用法",在日常操作中,相信很多人在python中的with语句实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"python中的with语句实例用法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

今天同事找到我说,他用pyton连接不上数据库。出于安全考虑,我们的数据库不允许直连,需要通过跳板机进行连接。所以,我认为是他没有使用ssh隧道。结果看了代码后,发现使用了sshtunnel模块的。

将他的代码拿来后,自己运行了一遍。也是报错(2013, 'Lost connection to MySQL server during query')。以为是网络原因,又接着运行了几遍,还是报相同的错误。核对了下,连接信息都没问题的,检查网络,也没发现异常。顿时傻眼了,不知所措。就先去解决其他问题了。晚上回到家后,有着强迫症的我,又重新打开了代码,端详了起来。

with SSHTunnelForwarder(         (ip, port),    #B机器的配置         ssh_username="user",         ssh_password="password",         remote_bind_address=('ip', port)         #logger=create_logger(loglevel=1)) as server:    conn = MySQLdb.connect(host='127.0.0.1',                           port=server.local_bind_port,                           username='username'                           password='password'                           db='db'                           charset='utf8'        )cursor = conn.cursor()sql = 'select * from test limit 1'

如上代码,一开始并没发觉哪里不对,但后来看到那个报错,又想到前几天看到python中with的用法,似乎有了眉目。将sql代码放在with块里边执行。一切都OK了,瞬间觉得恍然大悟。这和with语句的特性密不可分。with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的"清理"操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。

到此,关于"python中的with语句实例用法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

语句 代码 实例 学习 问题 数据 数据库 更多 网络 资源 帮助 运行 不对 实用 相同 安全 必要 不知所措 恍然大悟 接下来 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 英雄联盟泰国用的什么服务器 梦幻限时服务器好玩嘛 软件开发的流程是 搜题 沧州子越网络技术有限公司 着力促进网络安全长远发展 网络安全为人民的文章 软件开发相关的总结 数据库的几种操作语言类型 网络安全体制不包括以下哪一项 数据库管理系统可称为 学银在线数据库技术与应用答案 优质网络安全口号 sonar服务器文件管理 房地产岗位网络安全责任制度 文件服务器管理标准 软件开发要花多少钱 浪潮服务器ipmi端口 数据库对象提取的程序 广州聚焦网络技术有限公司6 新余天气预报软件开发 网络安全考研数据 浅析无线网络安全性 云手机服务器管理平台 网络安全英语作文30字 广东农村信用社软件开发面试 数据库修改客户密码实训总结 班级网络安全方案总结 网络安全及信息化情况 数据库无法连接到 重庆浪潮服务器维修系统虚拟主机
0