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_model() 内部の機能 __init__.py.この関数には、すでに認証モデルが含まれています。その下に学生モデルを追加します。

# 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()

モデルは、gearbox −のsetup-appコマンドを実行して初期化されます。

gearbox setup-app

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