Flask SQLAlchemy(mysql)连接关闭(连接超时)

时间:2019-08-23 10:11:30

标签: python mysql python-3.x flask flask-sqlalchemy

我正在使用Flask SQLAlchemy连接到我的mysql数据库,但是它具有默认的wait_timeout 120秒,因此在查询用户并且一段时间没有使用网络后,我会收到错误消息

(2013, 'Lost connection to MySQL server during query')

db.py

中的重要部分
app = Flask(__name__)
db = SQLAlchemy(app)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://urltomyserver'
app.config['SQLALCHEMY_POOL_RECYCLE'] = 10
app.config['SQLALCHEMY_POOL_TIMEOUT'] = 120
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db.init_app(app)

if __name__ == 'createdb':
    db.reflect()
    db.drop_all()
    db = SQLAlchemy(app)

还有我的 views.py

  @core.route('/')
    def index():
        userzy = sftpuser.query.all()
        return render_template('index.html', userzy=userzy)
        #I'D LIKE TO CLOSE MY CONNECTION HERE

在def index中返回模板后,我已经尝试过这些

  db.session.close()
    db.close()
    db.dispose()
    db.session.close()
    db.engine.dispose()
    db.session.commit()

还有这个

@app.teardown_appcontext
def teardown_db(error):
    db.session.close()
    db.engine.dispose()

但这对我没有太大帮助,任何人都知道解决方案,即使设置了池,为什么我仍然会出错?

1 个答案:

答案 0 :(得分:0)

您是否曾尝试更改此配置:app.config ['SQLALCHEMY_POOL_TIMEOUT'] = 120 ???