Turbogears-creating-models

提供:Dev Guides
移動先:案内検索

TurboGears –モデルの作成

*sqlite* データベースに学生テーブルを設定する学生モデルを追加しましょう。
*Hello \ hello \ model \ student.py*
from sqlalchemy import *
from sqlalchemy.orm import mapper, relation, relation, backref
from sqlalchemy import Table, ForeignKey, Column
from sqlalchemy.types import Integer, Unicode, DateTime

from hello.model import DeclarativeBase, metadata, DBSession
from datetime import datetime

class student(DeclarativeBase):
   __tablename__ = 'student'

   uid = Column(Integer, primary_key = True)
   name = Column(Unicode(20), nullable = False, default = '')
   city = Column(Unicode(20), nullable = False, default = '')
   address = Column(Unicode(100), nullable = False, default = '')
   pincode = Column(Unicode(10), nullable = False, default = '')
  • init。py。内の init_model()*関数にこのモデルを追加します。この関数には既に認証モデルが含まれています。 その下に学生モデルを追加します。
# Import your model modules here.
from hello.model.auth import User, Group, Permission
from hello.model.student import student

モデルのセットアップ時にテーブルを何らかのデータで初期化する場合は、websetupパッケージのbootstrap.pyに追加します。 * bootstrap()*関数に次のステートメントを追加します。

s1 = model.student()
s1.name = 'M.V.Lathkar'
s1.city = 'Nanded'
s1.address = 'Shivaji Nagar'
s1.pincode = '431602'

model.DBSession.add(s1)
model.DBSession.flush()
transaction.commit()

モデルは、ギアボックスのsetup-appコマンドを実行して初期化されます-

gearbox setup-app

SQLAlchemyのSessionオブジェクトは、ORMオブジェクトのすべての永続化操作を管理します。