python-19 Flask-SQLAlchemy

常用的SQLAlchemy的数据类型

python-19 Flask-SQLAlchemy

常用的SQLAlchemy的选项

python-19 Flask-SQLAlchemy

常用的SQLAlchemy的关系选项

python-19 Flask-SQLAlchemy

SQLAlchemy的过滤器

python-19 Flask-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表的内容

多对多查询:
定义中间表,中间表的字段为双主键
python-19 Flask-SQLAlchemy
下面代码写在其中的一个表中即可完成多对多关联:

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

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


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

python-19 Flask-SQLAlchemy