search
LoginSignup
0

More than 1 year has passed since last update.

posted at

updated at

MitamaでTodoアプリを作ってみる(2) - Modelを作りこむ

Mitama Advent Calendar3日目です。

前回→『MitamaでTodoアプリを作ってみる(1) - Mitamaアプリの構成

木瓜丸です。今回は引き続きTodoアプリを組んでみましょう。

モデルの設計

今回はTodoをオブジェクトとして表現するためのモデルを作成します。
次のようなプロパティをもたせればTodoとしては十分かなと思います。

プロパティ名 説明
node Node Todoを登録したユーザー、またはグループ
subject String Todoの題名
dead DateTime Todoの期日
done Boolean 終わったかどうか

注目してほしい点は、Nodeという型があることです。Nodeを型として指定した場合、そのプロパティにはUser、またはGroupのインスタンスを入れることができます。参照するときもUserやGroupの形で取得することができます。

コード

では、コードを書いてみましょう。
model.pyを次のように変更してください。

from mitama.db import BaseDatabase
from mitama.db.types import *        #コメントアウトを外す


class Database(BaseDatabase):
    pass


db = Database()

class Todo(db.Model):
    node = Column(Node)
    subject = Column(String)
    dead = Column(DateTime)
    done = Column(Boolean)

db.create_all()                     #コメントアウトを外す

...どうですかね?割と簡単に書けるかと思います。

2行目はモデルを作る上で使用する型の種類を読み込んでいます。StringやInteger、BooleanなどのSQLAlchemyに存在する型に加えて、User、Group、Node(UserとGroupを両方扱うための型)を読み込むことができます。

from mitama.db.types import *

11行目〜15行目のクラス定義がモデルの定義です。

class Todo(db.Model):
    node = Column(Node)
    subject = Column(String)
    dead = Column(DateTime)
    done = Column(Boolean)

17行目の処理は、作成したモデルのテーブルをデータベース上に実際に作成する作業をしています。

db.create_all()

次はコントローラーとビューを作り込み、実際にアプリっぽく操作できるようにしてみましょう!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0