Flask中数据库查询数据的简要概括

    首先要把实体类写在models.py中:

# 图书表
class Book(db.Model):
    # 对应数据库中的表名
    __tablename__ = 's_book'
    # 对应数据表中的字段名
    id = db.Column(db.Integer, primary_key=True, unique=True)
    title = db.Column(db.String(32))
    author = db.Column(db.String(20))
    thumb = db.Column(db.String(30))
    classify = db.Column(db.String(20))
    up_date = db.Column(db.Date)
    intro = db.Column(db.String(100))
    price = db.Column(db.String(8))
    status = db.Column(db.String(8))
    # 外键与另外一张表中的某字段关联
    owner_id = db.Column(db.Integer,db.ForeignKey('s_user.id'), nullable=True)
    # 与Change类中的外键建立起来的关联,在Change里可使用book_title
    changes = db.relationship('Change', backref='book_title', lazy='dynamic')

    def __init__(self, name):
        self.title = name
    # 通过Change表中的外键可以获得到下面函数中的title值
    def __repr__(self):
         return '%s' % self.title.encode('UTF-8')
        
#借阅表
class Change(db.Model):
    __tablename__ = 's_book_lend'
    id = db.Column(db.Integer, primary_key=True, unique=True)
    book_id = db.Column(db.Integer, db.ForeignKey('s_book.id'), nullable=True)
    startdate = db.Column(db.Date)
    limit = db.Column(db.Integer)
    enddate = db.Column(db.Date)
    address = db.Column(db.String(100))
    lend_uid = db.Column(db.Integer,db.ForeignKey('s_user.id'), nullable=True)

    def __init__(self, limit):
        self.limit = limit

    def __repr__(self):
         return '%s' % self.change_id
      然后在views.py 中查询相应的信息:

# 单表条件查询的例子
leaves = Leave.query.filter(Leave.user_id==user_id).order_by(Leave.time.desc()).all()

# 多表联查的例子
lends = db.session.query(Book, Change, User) 
            .join(Change, and_(Book.id == Change.book_id))
            .join(User, and_(Change.lend_uid == User.id, User.id == user_id))
      大致的查询写法就像上面的那个样子,之后宝宝会分享python的学习笔记系列,在里面会有比较详细的使用方法。



猜你喜欢

转载自blog.csdn.net/yl416306434/article/details/78920492