如果想深入学习Flask,可以观看这套免费Flask教学视频:Flask入门到项目实战
Column常用参数:
default:默认值。nullable:是否可空。primary_key:是否为主键。unique:是否唯一。autoincrement:是否自动增长。onupdate:更新的时候执行的函数。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.name == 'ed')not equals:query.filter(User.name != 'ed')like:query.filter(User.name.like('%ed%'))in:query.filter(User.name.in_(['ed','wendy','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))is not null:query.filter(User.name != None) # 或者是 query.filter(User.name.isnot(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'))
如果想深入学习Flask,可以观看这套免费Flask教学视频:Flask入门到项目实战

本文是Flask系列教程的第21部分,主要介绍SQLAlchemy的ORM操作,包括Column常用参数如默认值、主键设置,sqlalchemy的数据类型如Integer、String等,以及query查询的聚合函数和过滤条件,如count、avg、max等。
155

被折叠的 条评论
为什么被折叠?



