Flask-SQLAlchemy数据库操作

建表

# -*- coding: UTF-8 -*-
from . import db

#多对多关系表,两组一对多,即为多对多
class Boy2Girl(db.Model):
    __tablename__ = 'boy2girl'
    nid = db.Column(db.Integer,primary_key=True)
    #建立一对多关系,ForeignKey传入对应表的__tablename__.id
    boy_id = db.Column(db.Integer,db.ForeignKey('boy.id'))
    # 建立一对多关系,ForeignKey传入对应表的__tablename__.id
    girl_id = db.Column(db.Integer,db.ForeignKey('girl.id'))

class Boy(db.Model):
    __tablename__ = 'boy'
    id = db.Column(db.Integer,primary_key=True)
    name = db.Column(db.String(32),unique=True)
    age = db.Column(db.Integer)
    #并不会在数据库中生成列,作用为ORM调用时可以通过.来调用另一张表
    #例如boy.girl,girl.boy
    #传入的参数为另一张表的类名,关系表的表名,反向查询时的名字,可以为任意名字
    girl = db.relationship('Girl',secondary = Boy2Girl.__tablename__,backref = 'boy')
    car = db.relationship('Car',backref = 'boy')
    def __repr__(self):
        return '<Boy %r>'%self.name

class Girl(db.Model):
    __tablename__ = 'girl'
    id = db.Column(db.Integer,primary_key=True)
    name = db.Column(db.String(32),unique=True)
    age = db.Column(db.Integer)


    def __repr__(self):
        return '<Girl %r>' % self.name

class Car(db.Model):
    __tablename__ = 'car'
    id = db.Column(db.Integer,primary_key=True)
    name = db.Column(db.String(32),unique=True)
	#建立一对多关系,ForeignKey传入对应表的__tablename__.id,写在多的一对多中多的那边
    boy_id = db.Column(db.Integer,db.ForeignKey('boy.id'))

    def __repr__(self):
        return '<Car %r>'%self.name

  

猜你喜欢

转载自www.cnblogs.com/cx59244405/p/9910547.html