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

หากคุณต้องการให้ตารางเริ่มต้นด้วยข้อมูลบางอย่างในขณะตั้งค่าโมเดลให้เพิ่มใน bootstrap.py ในแพ็คเกจ websetup เพิ่มข้อความต่อไปนี้ในไฟล์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 จัดการการดำเนินการคงอยู่ทั้งหมดของอ็อบเจ็กต์ ORM