首先要把实体类写在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的学习笔记系列,在里面会有比较详细的使用方法。