一,使用contextmanager
from contextlib import contextmanager import MySQLdb DB_CONFIG = { "host": "192.168.1.253", "user": "pythondb", "passwd": "python123", "port": 20002, "db": "xw", "charset": "utf8" } @contextmanager def open_mysql(db_conf): try: conn = MySQLdb.connect(**db_conf) if conn: yield conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) except Exception as e: print(e) finally: conn.close() if __name__ == "__main__": with open_mysql(DB_CONFIG) as con: sql = "select 1 as c" con.execute(sql) rv = con.fetchall() print(rv)
二,使用__enter__跟__exit__
class OpenMysqlConn(object): def __init__(self, db_conf): self.db_conf = db_conf self.conn = None def __enter__(self): try: self.conn = MySQLdb.connect(**self.db_conf) if self.conn: return self.conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) except (AttributeError, MySQLdb.OperationalError): current_app.logger.error("连接数据库失败") def __exit__(self, exc_type, exc_val, exc_tb): if self.conn: self.conn.close()
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/44303.html
摘要:的安装博客补充知识年最新安装教程,滚雪球学第四季。操作操作数据库一般被程序员成为操作增删改查,其中各个字符分别代表新增,读取,更新,删除。可以返回受影响行数,可以直接通过该值判断是否修改成功。 ...
摘要:根据中华人民共和国信息产业部第十二次部务会议审议通过的非经营性互联网信息服务备案管理办法精神,在中华人民共和国境内提供非经营性互联网信息服务,应当办理备案。未经备案,不得在中华人民共和国境内从事非经营性互联网信息服务。 当我们开发了一个简单的 Flask 程序,想把项目部署上线,我们可以选择传统的部署方式或者云部署方式把项目部署上线。在本文中,笔者将使用 阿里云轻量应用服务器 安装 C...
摘要:试想,在多线程服务器中,多个线程同时处理不同客户端发送的不同请求时,每个线程看到的对象必然不同。多线程服务器会创建一个线程池,再从线程池中选择一个线程用于处理接收到的请求。 框架 Django flask flask是一个轻量的web开发应用示例开发一个小应用 from flask import Flask app = Flask(__name__) @app.route(/) d...
阅读 4555·2021-09-26 09:55
阅读 1310·2019-12-27 12:16
阅读 851·2019-08-30 15:56
阅读 1862·2019-08-30 14:05
阅读 942·2019-08-30 13:05
阅读 1225·2019-08-30 10:59
阅读 1399·2019-08-26 16:19
阅读 1842·2019-08-26 13:47