flask SQLAlchemy属性常用数据类型

本文详细介绍了SQLAlchemy ORM中常用的数据类型,如Integer、Float、Boolean等,以及Column的常见参数,如default、nullable、primary_key等。同时,深入探讨了SQLAlchemy查询中的聚合函数,如count、avg、max、min、sum,以及各种过滤条件的使用方法。

常用数据类型

  • Integer:整形。
  • Float:浮点类型。
  • Boolean:传递True/False进去。
  • DECIMAL:定点类型。
  • enum:枚举类型。
  • Date:传递datetime.date()进去。
  • DateTime:传递datetime.datetime()进去。
  • Time:传递datetime.time()进去。
  • String:字符类型,使用时需要指定长度,区别于Text类型。
  • Text:文本类型。
  • LONGTEXT:长文本类型。

Column常用参数

default:默认值。
nullable:是否可空。
primary_key:是否为主键。
unique:是否唯一。
autoincrement:是否自动增长。
onupdate:更新的时候执行的函数。
name:该属性在数据库中的字段映射

query可用参数

  1. 模型对象。指定查找这个模型中所有的对象。
  2. 模型中的属性。可以指定只查找某个模型的其中几个属性。
  3. 聚合函数。
    • func.count:统计行的数量。
    • func.avg:求平均值。
    • func.max:求最大值。
    • func.min:求最小值。
    • func.sum:求和。
result = session.query(func.count(Article.id)).first()
print(result)

result = session.query(func.avg(Article.price)).first()
print(result)

result = session.query(func.max(Article.price)).first()
print(result)

result = session.query(func.sum(Article.price)).first()
print(result)

过滤条件

过滤是数据提取的一个很重要的功能,以下对一些常用的过滤条件进行解释,并且这些过滤条件都是只能通过filter方法实现的

query.filter(User.name == 'xxx')
query.filter(User.name != 'xxx')
query.filter(User.name.like('%xxx%'))
query.filter(User.name.in_(['xxx','xxxx','xx']))
# 同时,in也可以作用于一个Query
query.filter(User.name.in_(session.query(User.name).filter(User.name.like('%xxx%'))))
query.filter(~User.name.in_(['xxx','xxxx','xx']))
query.filter(User.name.notin_(['xxx','xxxx','xx']))
query.filter(User.name==None)
# 或者是
query.filter(User.name.is_(None))
query.filter(User.name != None)
# 或者是
query.filter(User.name.isnot(None))
from sqlalchemy import and_
query.filter(and_(User.name=='xxx',User.password=='xxx'))
# 或者是传递多个参数
query.filter(User.name=='xxx',User.password=='xxx')
# 或者是通过多次filter操作
query.filter(User.name=='xxx').filter(User.password=='xxx')
from sqlalchemy import or_  
query.filter(or_(User.name=='xxx',User.name=='xxxx'))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值