Tua*_*hau 6 python mysql sqlalchemy flask flask-sqlalchemy
我有时会收到此错误(有时正常,有时错误):
sqlalchemy.exc.OperationalError: (OperationalError) MySQL Connection not available.
Run Code Online (Sandbox Code Playgroud)
使用时session.query
我正在使用 Flask 和 SQLAlchemy (MySQL) 编写一个简单的服务器。我的app.py这样:
Session = sessionmaker(bind=engine)
session = Session()
@app.route('/foo')
def foo():
try:
session.query(Foo).all()
except Exception:
session.rollback()
Run Code Online (Sandbox Code Playgroud)
更新
我还在session另一个文件中创建新的并调用它app.py
Session = sessionmaker(bind=engine)
session = Session()
def foo_helper(): #call in app.py
session.query(Something).all()
Run Code Online (Sandbox Code Playgroud)
更新 2
我的engine:
engine = create_engine('path')
Run Code Online (Sandbox Code Playgroud)
我怎样才能避免这个错误?
谢谢你!
使用 SQLAlchemy \xe2\x80\x98create_engine\xe2\x80\x99 函数时,请确保 \xe2\x80\x98pool_recycle option\xe2\x80\x99 的值小于 MYSQLs wait_timeout 值。
\n\nengine = create_engine("mysql://username:password@localhost/myDatabase", pool_recycle=3600)\nRun Code Online (Sandbox Code Playgroud)\n\n尝试使用以下方式scoped_session进行会话:
from sqlalchemy.orm import scoped_session, sessionmaker\nsession = scoped_session(sessionmaker(autocommit=False, autoflush=False, bind=engine))\nRun Code Online (Sandbox Code Playgroud)\n\n并在检索数据后关闭/删除您的会话。
\n\nsession.query(Foo).all()\nsession.close()\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
6674 次 |
| 最近记录: |