flask中一对一,一对多以及多对多关系的设定
Posted beifangls
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask中一对一,一对多以及多对多关系的设定相关的知识,希望对你有一定的参考价值。
一对多关系:
class Grade(db.Model): id=db.Column(db.Integer,primary_key=True) name=db.Column(db.String(20),nullable=False) num = db.Column(db.Integer, default=0) time = db.Column(db.String(20), default=‘2018-01-01‘) students=db.relationship(‘Student‘,backref=‘gd‘,lazy=‘dynamic‘) __tablename__=‘grade‘ class Student(db.Model): id=db.Column(db.String(50),primary_key=True) name=db.Column(db.String(50),nullable=False) password = db.Column(db.String(50), nullable=False) sex = db.Column(db.String(50), nullable=False) phone = db.Column(db.String(11), nullable=False) photo = db.Column(db.String(100), default=None) grades=db.Column(db.Integer,db.ForeignKey(‘grade.id‘)) __tablename__ = ‘student‘
一对一关系:在relationship里面lazy变量去掉,换成uselist=False
多对多关系:
其实多对多关系的处理是在两个表之间建立另外一张表格,设置两个外键去分别关联另外两张表的主键
t_g=db.Table(‘t_g‘,db.Column(‘t_id‘,db.String(50),db.ForeignKey(‘teacher.id‘)),db.Column(‘g_id‘,db.Integer,db.ForeignKey(‘grade.id‘))) class Teacher(db.Model,DBO): id=db.Column(db.String(50),primary_key=True) name=db.Column(db.String(50),nullable=False) password = db.Column(db.String(50), nullable=False) phone=db.Column(db.String(11), nullable=False) photo=db.Column(db.String(100),default=None) grades=db.relationship(‘Grade‘,secondary=t_g,backref=‘th‘,lazy=‘dynamic‘) __tablename__=‘teacher‘ class Grade(db.Model,DBO): id=db.Column(db.Integer,primary_key=True) name=db.Column(db.String(20),nullable=False) num = db.Column(db.Integer, default=0) time = db.Column(db.String(20), default=‘2018-01-01‘) students=db.relationship(‘Student‘,backref=‘gd‘,lazy=‘dynamic‘) __tablename__=‘grade‘
以上是关于flask中一对一,一对多以及多对多关系的设定的主要内容,如果未能解决你的问题,请参考以下文章
Flask-SQLAlchemy 配置,处理对象-关系,一对多,多对多
hibernate映射的 关联关系:有 一对多关联关系,一对一关联关系,多对多关联关系,继承关系
django数据库操作-增删改查-多对多关系以及一对多(外键)关系