书接上回,既然有单表,那必然就有一对多,多对多
一对多关系
多表关系中, 通过外键来关联数据
一对多关系中, 外键设置在 多的一方
通过关系属性来关系/查询数据 *** 作简单
1> 需要定义外键
2> 定义关系属性
3> 使用关系属性来关联数据
flsk中的一对多
在多的一方需要写一个字段s_g 在其中写上db.ForeignKey(‘grade.id’),参数为一对多的一的一方的主键。这个字段在数据库中是不存在的。
在少的一方需要添加一个relationship字段 students = db.relationship(‘Students’, backref=‘grade’) ,
class Plbic(db.Model):
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(64))
addprice = db.Column(db.String(64))
top_tp = db.relationship("Book", backref="to_publish")
def __str__(self):
return self.name
def __repr__(self):
return self.name
class Book(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(64))
price = db.Column(db.Integer)
pld_id = db.Column(db.Integer, db.ForeignKey(Plbic.id))
def __str__(self):
return self.title
def __repr__(self):
return self.title
backref为反向查询的关键字
增删改查
@app.route("/")
def index():
# 增
# book = Book()
# book.title = '西游记'
# book.price = 48.2
# book.pld_id = 1
# db.session.add(book)
# db.session.commit()
# plbic = Plbic()
# 删
# res = Book.query.filter(Book.id ==2).first()
# db.session.delete(res)
# db.session.commit()
# 查
# res = Plbic.query.filter(Plbic.name =='东京出版社').first().top_tp
# res = Book.query.filter(Book.title == "三国志").first().to_publish
# res = Book.query.order_by(Book.price.desc()).first()
# print(res)
return 'ss'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)