zoukankan      html  css  js  c++  java
  • flask 模型类中relationship的使用及其参数backref的说明,

    模型类

    class Author(db.Model):
        __tablename__ = 't_author'
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(64))
    
        # bk是关系的名字,Author的实例对象可以通过bk来查询其对应的有那些图书
        # Book是该关系对应的模型类类名,名字是类名,不能随意起
        # backref='author_i'是回调的引用,author_i是自定义的名字,
        #     Book的实例对习惯可以通过author_i来查询其对应的作者
        bk = relationship('Book', backref='author_id')
    
    class Book(db.Model):
        __tablename__ = 't_book'
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(64))
    
        # Book的外键,db.ForeignKey('t_author.id')里面必须是('引用的表表名.引用表的主键')
        author_id = db.Column(db.Integer, db.ForeignKey('t_author.id'))

    插入测试数据

    # 插入数据
        au1 = Author(name='我吃西红柿')
        au2 = Author(name='唐家三少')
        db.session.add_all([au1, au2])
    
        bk1 = Book(name='吞噬星空', author_id=au1.id)
        bk2 = Book(name='盘龙',author_id=au1.id)
        bk3 = Book(name='龙王传说',author_id=au2.id)
        db.session.add_all([bk1, bk2, bk3)
    
        db.session.commit()

    查询示例

    # 示例
        #查询 我吃西红柿 写了哪些书,查询的结果是书
        au1.bk
        #查询盘龙是谁写的,查询的结果是作者
        bk1.author_id
  • 相关阅读:
    EF6的多线程与分库架构设计实现
    Windows环境下安装Ionic
    Win7 下安装RabbitMQ
    在VS Nuget命令行下进行EF数据库迁移
    WebSocket与Tcp连接
    常用浏览器内核
    异步代码
    TCP与UDP的区别
    二分查找(折半查找)
    顺序查找
  • 原文地址:https://www.cnblogs.com/fanlei5458/p/9235461.html
Copyright © 2011-2022 走看看