我有以下项目结构
- app
---> settings.py
--->的初始化的.py
- 型号
--->的初始化的.py
---> config.py
- module1
--->的初始化的.py
---> utils.py
[app]
SQLALCHEMY_DATABASE_URI = 'mysql://....'
SQLALCHEMY_BINDS = {
"db01": 'mssql://...'
"db02": 'mssql://...'
}
SQLALCHEMY_POOL_TIMEOUT = 60
[__init__.py]
..
from flask.ext.sqlalchemy import SQLAlchemy
..
app = Flask("myapp")
app.config.from_object('app.settings')
sql = SQLAlchemy(app)
@app.before_request
def before_request():
pass
@app.after_request
def after_request(response):
return response
@app.teardown_request
def teardown_request(exception):
sql.session.remove()
[model]
[config.py]
from app import sql
class Sample(sql.model):
__tablename__ = "sample"
__bind__ = "db01"
id = sql.Column("Id",sql.Integer,primary_key = True)
value = sql.Column("Value",sql.String)
[module1]
[utils.py]
from app import sql
from model import Sample
data = sql.session.query(Sample).all()
我面临的问题是我经常遇到“ResourceClosedError”
根据我对错误的理解,烧瓶尝试使用它认为可以但已被数据库关闭的连接。有没有办法在每次发出请求时明确指示flask使用新连接,或者甚至更好地检查连接是否存活以及是否未打开新连接? 另请注意,使用的网络服务器是gunicorn而不是Flask的