================== SQLAlchemyについて ================== * SQL Toolkit & Object Relational Mapper 使用例 ====== 定義 ---- チュートリアルではschema.sqlを使ってデータベースを生成していましたが、 SQLAlchemyを使うとデータベースの定義と生成はこんな感じになります。:: class Entry(db.Model): __tablename__ = 'entries' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.Text(), nullable=False) text = db.Column(db.Text(), nullable=False) def init_db(): db.create_all() select ------ :: SELECT * FROM entries WHERE id > 10 ORDER BY id DESC; ↓ Entry.query.filter(Entry.id > 10).order_by(Entry.id.desc()).all() under_20 = Entry.query.filter(User.age < 20) under_20_and_male = under_20.filter(User.gendar == 'male') insert ------ :: INSERT INTO entries(title, text) VALUES ('title', 'text'); ↓ entry = Entry() entry.title = 'title' entry.text = 'text' db.session.add(entry) db.session.commit() update ------ :: UPDATE entries SET title = 'title2' WHERE id = 1; ↓ entry = Entry.query.filter(Entry.id == 1).first() entry.title = 'title2' db.session.add(entry) db.session.commit() delete ------ :: DELETE FROM entries WHERE id = 3; ↓ entry = Entry.query.filter(Entry.id == 3).first() db.session.delete(entry) db.session.commit() FlaskでSQLAlchemyを使う ----------------------- * そのまま使ってもいい * extensionにFlask-SQLAlchemyというのがあるので今回はそれを利用