Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

BottleでSQLAlchemyの設定を別ファイルに出したい...

Bottleの良い所であるone-file-approachですが、SQLAlchemyのモデル定義も全部1ファイルになってしまう。これをモデル(テーブルとマッピングしているクラス群)を別ファイルに出してimportみたいなことがしたかった。

が、Python使い始めて日が浅いのもあってどうやっていいかわからぬ... そもそも、そんなことするぐらいならBottleやめろってことかもしれない。

色々見たらFlaskという同じく軽量Webフレームワークの拡張プラグインとして、まさしく僕がやりたいことが出来る。


from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

import settings
from models import YourModel

engine = create_engine(settings.SQLALCHEMY_DATABASE_URI)
Session = sessionmaker(bind=engine)    
session = Session()

# do something with your session
session.query(YourModel).first()

ずっとフルスタックフレームワークを使っているけど、どうせ何かの時にはソースコードに当たらないとあかんのやから、なるべくシンプルで薄いフレームワークを組み合わせるのもアリなのかなっていうのがマイブーム。

Flaskに切り替えていく

速攻Kindleで下記の本を買った。2000円未満で今年の4月の出版だから情報も新しい。買いだと思いました。

Flask Web Development: Developing Web Applications with Python

Flask Web Development: Developing Web Applications with Python

英語も平易ですごくわかりやすい。よっしゃ。

追記 2016.03.18 14:14

flaskには様々なプラグインがあり、SQLAlchemyのプラグインもある。flaskに組み込んでContextLocalな環境でSQLAlchemyのセッションをいじれるようにしてくれているもの、だと思う。

Flask-SQLAlchemy — Flask-SQLAlchemy Documentation (2.1)