python-19 Flask-SQLAlchemy

常用的SQLAlchemy的数据类型

在这里插入图片描述

常用的SQLAlchemy的选项

在这里插入图片描述

常用的SQLAlchemy的关系选项

在这里插入图片描述

SQLAlchemy的过滤器

在这里插入图片描述
常用filter,使用前要加上类名,可以使用比较符号 ==,!=,>,<。
例子:

id=8
user=User.query.filter(User.id == id).all()

复杂条件查询:

from sqlalchemy import and_
  
  item = House.query.filter(and_(House.area_id == aid,House.max_days>=days,House.min_days<=days)).order_by(House.create_time.desc()).limit(5)

一对多查询:
model.py文件中定义一对多关系,一方定义关系,多方定义外键。
具体参考模型类
插入数据对象时要先将数据插入主表,
删除数据对象时要先将数据在从表中删除。

id = 7
house_days=House.query.filter(and_(House.id==id,House.order.days)).all()
#查询订单中房屋id为7的租期天数
order字段是House关联Order表的属性值,可以通过order来查询Order表的内容

多对多查询:
定义中间表,中间表的字段为双主键
在这里插入图片描述
下面代码写在其中的一个表中即可完成多对多关联:

courses= db.relationship("Course", secondary=Student_Course)  # 学生选修的课程

下面是一个多对多表建立关系的语句,house是一个新创建的House对象,建立起与设备之间的多对多关系,


facilities = db.relationship("Facility", secondary=house_facility)  # 房屋的设施

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值