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