mysql延伸扩展 分页 一对多查询

mysql延伸

增 (多个)

  1. db.session.add(stu) 单个
  2. db.session.add_all(stus) 列表,多个

运算符

filter(模型名.字段.运算符(‘xxx’))
filter(模型名.字段 运算符 值)

  1. 小于 lt 小于等于 le
    • s_age.lt(11)
  2. 大于 gt 大于等于 le
  3. 范围 in_
    • s_age.in_([11, 13])
  4. 排序 order_by
  5. 返回几个 limit(4)
  6. 跳过几个 offset(3)
  7. 第一个 first()
  8. 最后一个 last()
  9. 并且 add_
  10. 或者 or_
  11. 非 not_
    • add_(条件)

查询进阶

  1. sql 语句查询
    • sql = ‘查询条件’
    • stus = db.session.execute(sql)
  2. flask语句查询
    • 应用运算符查询

filter 和 get 在 flask里的区别

  1. filter 返回的是列表,就算只有一条数据,也是列表
  2. get 只能获取主键id,查询并返回一条信息,查不到返回空,不会报错

分页 paginate

定义
  1. page = int(request.args.get(‘page’,1))
  2. perpage = int(request.args.get(‘per_page’, 3))
  3. paginate = Student.query.order_by(‘-s_id’).paginate(page, perpage, error_out=False)
  4. stus = paginate.items
  5. return render_template(‘xx.html’, paginate=paginate, stus=stus)
使用
  1. paginate.pages 总页数
  2. paginate.page 当前页数
  3. paginate.prev_num 上一页
  4. paginate.next_num 下一页
  5. paginate.iter_pages 页码
  6. paginate.total所有的数据,多少条
  7. paginate.has_next 有下一页
  8. paginate.has_prev 有上一页

模型

  • 创建表结构 create_all,只能通过add commit 配合来添加内容
  • 注意,两个表分开写时,注意!!拿不准就写在一个models里

一对一

一对多

创建表结构
  1. 在多的表里创建连接点
    • s_g = db.Column(db.Integer, db.ForeignKey(‘grade.g_id’), nullable=True)
    • 其中必须是(表名.主键)
  2. 在一 的表里关联上多的表
    • students = db.relationship(‘Student’,backref=’stu’, lazy=True)
    • 其中必须是Student,类名。
使用,同django
  1. stus = grade.students 母表查子表
  2. grade = stu.stu 子表查母表

多对多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值