• sqlchemy查询的其他操作


    sqlalchemy的数据查询排序

    1 .正序排序:session.query(model).order_by(model.attr).all() session.query(model).order_by("attr").all()

    2 .倒序排序:session.query(model).order_by(model.attr.desc()).all() session.query(model).order_by("-attr").all()

    3 .设置默认排序,在创建表的时候,定义一个类属性__mapper_args__ = {"order_by: attr"},后面查询不需要使用order_by,普通查询的对象即为排序好后的对象。

    4 .在relationship中设置排序方式relationship('model', backref=backref('attr', order_by=attr))

    limit、offset、切片

    1 . 获取限制的部分数据session.query(model).limit(10).all() 获取前10条数据
    2 . 获取固定偏移量的数据session.query(model).offset(10).limit(10).all() 从第10条数据开始,获取11-20条数据
    3 . 获取排序后的数据session.query(model).order_by(model.attr).offset(10).limit(10).all()
    4 . 切片session.query(model)[0:10] session.query(model).slice(0, 10).all()

    懒加载

    在一对多或者多对多的时候,如果想要获取多的这一部门的数据的时候,往往通过一个属性就可以全部获取了。比如有一个作者,想要获取这个作者的所有文章,name可以通过
    user.articles就可以获取所有的。但有时候我们不想获取所有的数据,不如只想要获取这个作者今天发表的文章,那么这个时候我们可以给relationship传递
    一个lazy='dunamic',以后通过user.articles获取到的就不是一个列表,而是一个appendquery对象了。这样就可以对这个对象再进行一次过滤和排序的等操作了。
    relationship('model', backref=backref('attr', lazy=''dynamic'))

  • 相关阅读:
    Django对静态文件的处理——部署阶段
    使用Django来处理对于静态文件的请求
    Django1.7如何配置静态资源访问
    Spring WebSocket中403错误解决
    FastJSON JSONObject 字段排序 Feature.OrderedField
    国际化(i18n) 各国语言缩写
    【转】java.io.Closeable接口
    【转】spring bean 卸载
    This content should also be served over HTTPS
    Failed to close the ServletOutputStream connection cleanly, Broken pipe
  • 原文地址:https://www.cnblogs.com/ivy-blogs/p/11577219.html
Copyright © 2020-2023  润新知