python3?flask使用連接池連接數(shù)據(jù)庫(kù)實(shí)例
python使用連接池
在真實(shí)的線上環(huán)境連接數(shù)據(jù)庫(kù)一般都是要使用連接池的,連接池統(tǒng)一管理數(shù)據(jù)庫(kù)連接,可以提高應(yīng)用性能。
python數(shù)據(jù)庫(kù)連接池可以使用dbutils和PySQLPool但是這兩個(gè)庫(kù)似乎都只支持python2不支持
python3,最后折騰了半天,Python3最后我使用的是sqlalchmey里的連接池工具sqlalchemy.pool,把連接池應(yīng)用到flask,我使用的是下面的方式,個(gè)人認(rèn)為比較合理
示例
from flask import Flask, _app_ctx_stack, current_app
import MySQLdb
import sqlalchemy.pool as pool
app = Flask(__name__)
app.config.from_pyfile('config.py')
@app.teardown_appcontext
def close_database_connection(error=None):
con = getattr(_app_ctx_stack, 'database', None)
if con:
con.close()
def getconn(db_conf=None):
if db_conf is None:
db_conf = current_app.config['DB_CONFIG']
conn = MySQLdb.connect(**db_conf)
return conn
mypool = pool.QueuePool(getconn, max_overflow=10, pool_size=5)
app.db_pool = mypool
def get_db():
ctx = _app_ctx_stack.top
con = getattr(ctx, 'database', None)
if con is None:
con = current_app.db_pool.connect()
ctx.database = con
return con
@app.route('/')
def index():
con = get_db()
cursor = con.cursor(cursorclass=MySQLdb.cursors.DictCursor)
rv = cursor.execute('select 1')
return str(rv)
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True, port=5001)因?yàn)閟qlalchemy里有連接池模塊,直接使用下面的方式在需要的地方導(dǎo)入db我猜測(cè)也是連接池的管理方式,未測(cè)試
from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() db.init_app(app) ....
有需要的朋友可以借鑒參考下,更多關(guān)于python3 flask連接數(shù)據(jù)庫(kù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python使用fcntl模塊實(shí)現(xiàn)程序加鎖功能示例
這篇文章主要介紹了python使用fcntl模塊實(shí)現(xiàn)程序加鎖功能,較為詳細(xì)的分析了fcntl模塊的具體功能并結(jié)合實(shí)例形式給出了Python實(shí)現(xiàn)程序加鎖的操作技巧,需要的朋友可以參考下2017-06-06
Python數(shù)據(jù)可視化實(shí)踐之使用Matplotlib繪制圖表
數(shù)據(jù)可視化是數(shù)據(jù)分析的重要環(huán)節(jié),通過(guò)將數(shù)據(jù)轉(zhuǎn)化為圖形,可以更直觀地展示數(shù)據(jù)特征和規(guī)律。Python中的Matplotlib庫(kù)是一個(gè)強(qiáng)大的數(shù)據(jù)可視化工具,本文將帶您了解Matplotlib的基本使用方法,以及如何繪制常見(jiàn)的圖表2023-05-05
python正則表達(dá)式查找和替換內(nèi)容的實(shí)例詳解
在本篇文章里小編給大家整理的是一篇關(guān)于python正則表達(dá)式查找和替換內(nèi)容的實(shí)例詳解內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)參考下。2021-10-10
python數(shù)據(jù)結(jié)構(gòu)之線性表的順序存儲(chǔ)結(jié)構(gòu)
這篇文章主要為大家詳細(xì)介紹了python數(shù)據(jù)結(jié)構(gòu)之線性表的順序存儲(chǔ)結(jié)構(gòu),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09
簡(jiǎn)單總結(jié)Python中序列與字典的相同和不同之處
這篇文章主要介紹了Python中序列與字典的相同和不同之處,序列這里講到Python中最常用的列表和元組以及字典三種,需要的朋友可以參考下2016-01-01
Python實(shí)現(xiàn)獲取網(wǎng)頁(yè)信息并解析
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)獲取網(wǎng)頁(yè)信息并解析功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-05-05

