TurboGears - Criando Modelos

Vamos adicionar um modelo de aluno que irá configurar uma mesa de aluno em nosso sqlite base de dados.

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 = '')

Agora adicione este modelo em init_model() função dentro __init__.py.Esta função já contém o modelo de autenticação. Adicione nosso modelo de aluno abaixo dele.

# Import your model modules here.
from hello.model.auth import User, Group, Permission
from hello.model.student import student

Se você deseja que a tabela seja inicializada com alguns dados no momento de configurar os modelos, adicione-a em bootstrap.py no pacote websetup. Adicione as seguintes declarações nobootstrap() função.

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

Os modelos são inicializados executando o comando setup-app da caixa de câmbio -

gearbox setup-app

O objeto de sessão de SQLAlchemy gerencia todas as operações de persistência do objeto ORM.