Flask 数据库 - 一对多 *** 作

Flask 数据库 - 一对多 *** 作,第1张

书接上回,既然有单表,那必然就有一对多,多对多

一对多关系

多表关系中, 通过外键来关联数据
一对多关系中, 外键设置在 多的一方

通过关系属性来关系/查询数据  *** 作简单
    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'

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/922742.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存