TurboGears - Création de modèles

Ajoutons un modèle étudiant qui mettra en place une table étudiante dans notre sqlite base de données.

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

Maintenant, ajoutez ce modèle dans init_model() fonction à l'intérieur __init__.py.Cette fonction contient déjà le modèle d'authentification. Ajoutez notre modèle étudiant en dessous.

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

Si vous souhaitez que la table soit initialisée avec certaines données au moment de la configuration des modèles, ajoutez-la dans bootstrap.py dans le package websetup. Ajoutez les instructions suivantes dans lebootstrap() fonction.

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

Les modèles sont initialisés en exécutant la commande setup-app de la boîte de vitesses -

gearbox setup-app

L'objet de session de SQLAlchemy gère toutes les opérations de persistance de l'objet ORM.