下記、2) の場合は、create_engine()を使わずとも勝手にインスタンスが作成されているのでしょうか?これは、flask-sqlalchemyだからできているのでしょうか?もしくは、ドライバでしょうか?
仮に、flask-sqlalchemyは、定数を設定すればいちいち関数を仕様する必要がないということだとしたら、どうその設定がちゃんと読み込まれているかどうかを確認すればよいのでしょうか?
例えば、現状、SQLALCHEMY_POOL_RECYCLE = 30の設定が反映されていませんが、挙動からしかうまくいって設定されていないと判断してしまっています。環境変数みたいにどこかで設定されていて確認できないかと思った次第です。
- mysqlclinetドライバを利用(SQLAlchemy/mysql)
flask
1def main(): 2 engine = create_engine('mysql+mysqldb://root@localhost/sample',) 3 Base.metadata.create_all(engine) 4 SessionMaker = sessionmaker(bind=engine) 5 session = SessionMaker() 6 7 new_user = User(name='foo') 8 9if __name__ == '__main__': 10 main() 11
- PyMySQLを利用(Flask-SQLAlchemy/mysql)
flask
1 2"""FlaskのConfigを提供する""" 3import os 4 5 6class DevelopmentConfig: 7 8 # Flask 9 DEBUG = True 10 11 # SQLAlchemy 12 SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://{user}:{password}@{host}/flask_sample?charset=utf8'.format(**{ 13 'user': os.getenv('DB_USER', 'root'), 14 'password': os.getenv('DB_PASSWORD', ''), 15 'host': os.getenv('DB_HOST', 'localhost'), 16 }) 17 SQLALCHEMY_TRACK_MODIFICATIONS = False 18 SQLALCHEMY_ECHO = False 19 SQLALCHEMY_POOL_RECYCLE = 30 20 21 22Config = DevelopmentConfig
あなたの回答
tips
プレビュー