久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

mysql - python開發web service 中數據庫鏈接和釋放應該怎么處理?

瀏覽:157日期:2022-09-18 14:21:22

問題描述

用tornado開發web service服務。服務端根據接收到的json數據對mysql數據庫進行查詢,并把結果反饋給用戶。采用sqlalchemy對數據庫進行操作,以下對數據庫鏈接的創建,釋放是否合理呢?

class db: def __init__(self,db_ip=’’,db_name=’’,db_user=’’,db_pass=’’,db_charset=’’):self.db_str = ’mysql+pymysql://’+db_user+’:’+db_pass+’@’+db_ip+’:3306/’+db_name+’?’+’charset=’+db_charsetself.engine = create_engine(self.db_str, encoding=’utf-8’, echo=False)self.dbsession = sessionmaker(bind=self.engine) def return_dbsession(self):return self.dbsession def close_session(self):self.session.close()

database = db(db_ip=’127.0.0.1’, db_name=’data_utf’, db_user=’root’, db_pass=’root’, db_charset=’utf8’)

處理post請求代碼如下

class rcvRequest(tornado.web.Request): session = scoped_session(database.return_dbsession())() response = [] for ctt in session.query(table).filter(table.ID == id):response.append(ctt) self.write(str(response)) session.close()

問題解答

回答1:

不合理,每來一次請求就建立一次連接不是很浪費嗎?sqlalchemy可以很好的幫你管理連接池,找找資料,用連接池吧.

回答2:

代碼調整為以下這種方式是否合理?

def db(db_ip=’’,db_name=’’,db_user=’’,db_pass=’’,db_charset=’’):db_str = ’mysql+pymysql://’+db_user+’:’+db_pass+’@’+db_ip+’:3306/’+db_name+’?’+’charset=’+db_charsetengine = create_engine(self.db_str, encoding=’utf-8’, echo=False)dbsession = sessionmaker(bind=self.engine)return dbsessiondatabase =db(db_ip=’127.0.0.1’, db_name=’data_utf’, db_user=’root’, db_pass=’root’, db_charset=’utf8’)class rcvRequest(tornado.web.Request): def initialize(self):self.session = scoped_session(database)() @tornado.gen.coroutine def post(self):response = []for ctt in self.session.query(table).filter(table.ID == id): response.append(ctt)self.write(str(response))def on_finish(self):self.session.close()回答3:

還是建議找個ORM吧。你這樣一個鏈接就請求一次搞不好數據服務就掛掉了。

回答4:

請參考https://github.com/PyMySQL/To...

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 邢台市| 婺源县| 行唐县| 慈溪市| 太白县| 普兰店市| 平罗县| 枣强县| 德兴市| 天镇县| 西盟| 广安市| 四会市| 海宁市| 乐东| 阿勒泰市| 香河县| 岑溪市| 永丰县| 玉田县| 葵青区| 巴彦淖尔市| 天津市| 内黄县| 中宁县| 赣榆县| 烟台市| 临高县| 瑞丽市| 芦山县| 澎湖县| 肃南| 锡林郭勒盟| 南康市| 铜梁县| 合阳县| 阳山县| 南部县| 黑龙江省| 苏州市| 邢台市|