一,使用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("連接數(shù)據(jù)庫失敗") def __exit__(self, exc_type, exc_val, exc_tb): if self.conn: self.conn.close()
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/44303.html
摘要:的安裝博客補充知識年最新安裝教程,滾雪球?qū)W第四季。操作操作數(shù)據(jù)庫一般被程序員成為操作增刪改查,其中各個字符分別代表新增,讀取,更新,刪除。可以返回受影響行數(shù),可以直接通過該值判斷是否修改成功。 ...
摘要:根據(jù)中華人民共和國信息產(chǎn)業(yè)部第十二次部務(wù)會議審議通過的非經(jīng)營性互聯(lián)網(wǎng)信息服務(wù)備案管理辦法精神,在中華人民共和國境內(nèi)提供非經(jīng)營性互聯(lián)網(wǎng)信息服務(wù),應(yīng)當(dāng)辦理備案。未經(jīng)備案,不得在中華人民共和國境內(nèi)從事非經(jīng)營性互聯(lián)網(wǎng)信息服務(wù)。 當(dāng)我們開發(fā)了一個簡單的 Flask 程序,想把項目部署上線,我們可以選擇傳統(tǒng)的部署方式或者云部署方式把項目部署上線。在本文中,筆者將使用 阿里云輕量應(yīng)用服務(wù)器 安裝 C...
摘要:試想,在多線程服務(wù)器中,多個線程同時處理不同客戶端發(fā)送的不同請求時,每個線程看到的對象必然不同。多線程服務(wù)器會創(chuàng)建一個線程池,再從線程池中選擇一個線程用于處理接收到的請求。 框架 Django flask flask是一個輕量的web開發(fā)應(yīng)用示例開發(fā)一個小應(yīng)用 from flask import Flask app = Flask(__name__) @app.route(/) d...
閱讀 4624·2021-09-26 09:55
閱讀 1367·2019-12-27 12:16
閱讀 887·2019-08-30 15:56
閱讀 1905·2019-08-30 14:05
閱讀 992·2019-08-30 13:05
閱讀 1269·2019-08-30 10:59
閱讀 1442·2019-08-26 16:19
閱讀 1887·2019-08-26 13:47