来源:本文章摘抄于《知了课堂》,本人也是知了课堂的学生
相关
Python-SQLAlchemy介绍和基本使用
Python-SQLAlchemy(1)
Python-SQLAlchemy(2)
Python-SQLAlchemy(3)
Python-SQLAlchemy(4)
Python-SQLAlchemy(5)
Column 常用参数:
- default:默认值
- nullable:是否为空
- primary_key:是否为主键
- unique:是否唯一
- autoincrement:是否自动增长
- name:该属性在数据库中的字段映射
sqlalchemy常用数据类型
- Integer:整型
- Float:浮点类型
- Boolean:传递 True/False
- DECIMAL: 定点类型
- enum:枚举类型
- Date:传递 datetime.date()
- DateTime:传递datetime.datetime()
- Time:传递datetime.time()
- String:字符类型,使用时需要指定长度,区别于Text类型
- Text:文本类型
- LONGTEXT:长文本类型
query可用类型
- 模型对象:指定查找这个模型中所有对象
- 模型中的属性:可以指定只查找某一个模型的其中几个属性
- 聚合函数:
- func.count():总数
- func.avg():求平均值
- func.max():求最大值
- func.min():求最小值
- func.sum():求和
过滤条件:
过滤是数据提取的一个很重要的功能,以下对一些常用的过滤条件进行解释,并且这些过滤条件都是只能通过 filter 方法实现的:
equals
query.filter(User.bane == 'ed')
not equals
query.filter(User.name != 'ed')
like
query.filter(User.name.like('%ed%')
in
query.filter(User.name.in_(['ed', 'weny', 'jack']))
# 同时,in 也可以作用于一个Query
query.filter(User.name.in_(session.query(User.name).filter(User.name.like('%ed%'))))
not in
query.filter(~User,name.in_(['ed', 'wendy', 'jack']))
is null
query.filter(User.name==None)
# 或者是
query.filter(User.name.is_(None))
and
from sqlalchemy import and_
query.filter(and_(User.name=='ed', User.fullname=='Ed Jones'))
# 或者传递多个参数
query.filter(User.name == 'ed', User.fullname=='Ed Jones')
# 或者是通过多次 filter 操作
query.filter(User.name=='ed').filter(User.fullname=='Ed Jones')
or
from sqlalchemy import or_
query.filter(or_(User.name=='ed', User.name=='wendy'))
网友评论