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) # 房屋的设施