FlaskのDB連携(sqlite, SQLAlchemy)のやり方 - 7月 06, 2018 こんにちは、ぐぐりら(@guglilac)です。 * sqlite * SQLAlchemy を使用した。 ORMとしてSQLAlchemyを使うと直にSQLを書かなくてすむのでよい。 ```python:app.py from flask_sqlalchemy import SQLAlchemy app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///"database_name".db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True db = SQLAlchemy(app) ``` としてdbを通してDBにアクセスできる。 これによって`datebase_name`というDBを使用するようになる。 (sqliteではhogehoge.db的なファイルでデータベースが表現される) 実際にDBを作らないといけないので、ipythonとかでインタラクティブモードに入って ``` db.create_all() ``` とすると指定したDBファイルと、それを継承したモデルに紐付いたテーブルが作成される。 modelは以下のようにかく。 `db.Model`を継承したクラスを作ることでmodelを通してDBからデータを引っ張ってこれる。 ```python:app.py class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True) def __init__(self, username): self.username = username ``` データとってくるのはこんな感じ。 ``` User.query.all() ``` データを入れるときはこんな感じ ``` # hoge ユーザオブジェクトを作成 user = User('hoge') # 上記のオブジェクトを DBに追加 db.session.add(user) # commit によって DB に保存 db.session.commit() ``` SQL文を書かなくて良くてとてもよい。 実際にはDBの接続設定やモデルなどは別のファイルに分けたほうがいいから、その辺のリファクタリングをしたい。 ## その他のFlaskの記事 一時期よくFlaskを書いていたので、Tips記事が他にもいくつかあります。 * ぼくのかんがえるさいきょうのFlaskアプリのディレクトリ構成 * Flaskの設定まわりベストプラクティス * Flaskのviewをblueprintで分割する * Flaskで1対多のモデルを定義する方法 ぜひ読んでみてください。 この記事をシェアする Twitter Facebook Google+ B!はてブ Pocket Feedly コメント
コメント
コメントを投稿