Bplt11 form alchemy

11
FormAlchemy

description

 

Transcript of Bplt11 form alchemy

Page 1: Bplt11 form alchemy

FormAlchemy

Page 2: Bplt11 form alchemy

FormAlchemy

SQLAlchemyを使うときに、フォームライブラリはどうしよう?

FormAlchemySQLAlchemyのモデルからフォームを生成できる。

Page 3: Bplt11 form alchemy

インストール

pip install formalchemy

(・∀・) It's so easy!

Page 4: Bplt11 form alchemy

使い方

Personというマッピング済のクラス

fs = fa.FieldSet(Person, DBSession)

fs.render()

Page 5: Bplt11 form alchemy

グリッドも使える

grid = fa.Grid(Person.query.all(), DBSession)

grid.render()

Page 6: Bplt11 form alchemy

モデル同期(新規)

fs = fa.FieldSet(Person, DBSession, data=request.POST)if fs.validate(): fs.sync() DBSession.add(fs.model)

fs.modelに同期されたインスタンス

Page 7: Bplt11 form alchemy

モデル同期(更新)

person = Person.query.filter_by(id=id).one()fs = fa.FieldSet(person, data=request.POST)if fs.validate(): fs.sync()

personはDBSessionに紐づいてるので、FieldSetに渡す必要なし。

Page 8: Bplt11 form alchemy

カスタマイズ

パスワードフィールドにしたり、ラジオボタンに変更するなどfs.configure( options=[fs["password"].password()])

fs.configure( options=[fs["gender"].radio( [('male', MALE), ('female', FEMALE)])])

Page 9: Bplt11 form alchemy

見た目を変える

fa.jqueryfa.bootstrapなど

名前に反して Pyramid 専用

Page 10: Bplt11 form alchemy

デモ