zoukankan      html  css  js  c++  java
  • Flask框架之一对多关系模型定义

    案例代码:

    #定义模型
    class BookInfo(db.Model):
        #设置表名
        __tablename__ = 'bookinfo'
        #设置为主键之后,自动自增长
        id = db.Column(db.Integer,primary_key=True)
        name = db.Column(db.String(20),unique=True,nullable=False)
        pub_date = db.Column(db.Date,nullable=True)
        readcount = db.Column(db.Integer,default=1)
        commentcount = db.Column(db.Integer,default=1)
        is_delete = db.Column(db.Boolean,default=False)
    
        # 定义一对多字段
        peopleinfo_set = db.relationship('PeopleInfo',      # 模型类名
                                         backref='book',    # 多关系模型中隐藏的对象字段
                                         lazy='dynamic')    # 是否惰性查询
    
        def __repr__(self):
            return self.name
    
    class PeopleInfo(db.Model):
        __tablename__ = 'peopleinfo'
        id = db.Column(db.Integer,primary_key=True)
        name = db.Column(db.String(20),unique=True)
        password = db.Column(db.String(20),nullable=False)
        email = db.Column(db.String(50),nullable=True)
        #设置外键
        book_id = db.Column(db.Integer,db.ForeignKey('bookinfo.id'))
    
        def __repr__(self):
            return self.name

    代码解析:

    只需要在一关系模型类中定义一个管理字段即可实现一对多关系模型的定义。

    多关系类名小写_set = db.relationship('多关系模型名',backref='关系对象',lazy='dynamic')
    该花的钱要花,该吃的饭要吃。
  • 相关阅读:
    mongodb集群搭建
    ansible 部署redis集群(三台主机6节点3主3备)
    nginx upstream bug
    回炉重造之 nginx
    docker 搭建jenkins环境
    搭建gitlab
    Dockerfile传入变量问题
    mysql8忘记root密码重置密码
    docker-compose容器化构建nginx服务
    docker-compose容器化构建minio服务
  • 原文地址:https://www.cnblogs.com/chao666/p/12424972.html
Copyright © 2011-2022 走看看