Flask系列教程(21)——SQLAlchemy的ORM(2)

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可用参数:

  1. 模型对象。指定查找这个模型中所有的对象。

  2. 模型中的属性。可以指定只查找某个模型的其中几个属性。

  3. 聚合函数。

    • func.count:统计行的数量。
    • func.avg:求平均值。
    • func.max:求最大值。
    • func.min:求最小值。
    • func.sum:求和。

过滤条件:

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

  1. equals

    query.filter(User.name == 'ed')
    
  2. not equals:

    query.filter(User.name != 'ed')
    
  3. like

    query.filter(User.name.like('%ed%'))
    
  4. 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%'))))
    
  5. not in

    query.filter(~User.name.in_(['ed','wendy','jack']))
    
  6. is null

    query.filter(User.name==None)
    
    # 或者是
    
    query.filter(User.name.is_(None))
    
  7. is not null:

    query.filter(User.name != None)
    
    # 或者是
    
    query.filter(User.name.isnot(None))
    
  8. 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')
    
  9. or

    from sqlalchemy import or_ query.filter(or_(User.name=='ed',User.name=='wendy'))
    

如果想深入学习Flask,可以观看这套免费Flask教学视频:Flask入门到项目实战

</article>

版权声明: https://blog.csdn.net/huangyong1314/article/details/80392200

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • pip install sqlalchemy 1.安装mysqlapt-get install mysql-ser...
    残风疏影阅读 1,174评论 0 1
  • filter() of session.query() 1.equals query.filter(User.na...
    第八共同体阅读 347评论 0 0
  • 转载,觉得这篇写 SQLAlchemy Core,写得非常不错。不过后续他没写SQLAlchemy ORM... ...
    非梦nj阅读 5,486评论 1 14
  • 当时光荏苒,岁月沧桑了我的脸,你是否还在 当黑夜降临,别人都已熟睡,你是否还在 当太阳升起,窗外阳光明媚,你是否还...
    番茄土豆泥阅读 364评论 5 5
  • 2017.10.30-11.5周总结 5.理想的状况 a.人人都献出一份爱,动起来…… b.各收货点,各行其责!做...
    大无畏5阅读 170评论 0 0