from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
sc = db.Table('sc',
db.Column('sno', db.String(10), db.ForeignKey('students.sno')),
db.Column('cno', db.String(10), db.ForeignKey('courses.cno'))
)
class Students(db.Model):
__tablename__ = 'students'
sno = db.Column(db.String(10), primary_key=True)
sname = db.Column(db.String(10))
class Course(db.Model):
__tablename__ = 'courses'
cno = db.Column(db.String(10), primary_key=True)
cname = db.Column(db.String(10), index=True)
students = db.relationship('Student',
secondary=sc,
backref=db.backref('courses',lazy='dynamic'),
lazy='dynamic'
)
比如上面这种,sc为关联表,因为关联表包含所有学生和课程的对应关系,感觉正好可以加个分数字段。如果我现在要给sc表加个字段“分数”,s = Students.query.get(id),如果查询学生学号为id的某门课或所有课程的分数?
这是我的 pyblog 项目里的 models.py —— 希望对你有用
https://github.com/eastossifrage/pyblog/blob/master/app/models.py
请特别关注对 articles 类的定义,建议你把想要查询的内容,直接做成为某个类的属性,记得前面加上装饰器
@property
。