• Python-Django 模型层-多表查询-2


    -related_name:基于双下划线的跨表查询,修改反向查询的字段

    -related_query_name:基于对象的跨表查询,修改反向查询字段

    publish = ForeignKey(Blog, related_name='bookList')
    复制代码
    # 练习: 查询人民出版社出版过的所有书籍的名字与价格(一对多)
    
    # 反向查询 不再按表名:book,而是related_name:bookList
    
    
        queryResult=Publish.objects
                  .filter(name="人民出版社")
                  .values_list("bookList__title","bookList__price") 

    -聚合查询:(聚合函数的使用)aggregate

    from django.db.models import Count,Max,Min,Avg,Sum
    ret=models.Book.objects.all().aggregate(aa=Avg('price'))


    -分组查询annotate
    #终极总结

    group by 谁,就以谁做基表
    values在前:表示group by
    values在后:取值
    filter在前:表示where条件
    filter在后: 表示having

    -F和Q查询

    F查询干什么用? 取出数据库中某个字段的值,然后进行运算
    Q查询是干什么用的?表示出或 与 非 的情况,用的最多的是或的情况


    -在实际开发中,外键通常不用

    -约束性太强
    -查询效率会变低
    -db_constraint=False orm创建表的时候,外键就没了


    -建外键约束,包括unique,都是为了不写脏数据

    TTL

    -related_name:基于双下划线的跨表查询,修改反向查询的字段
    -related_query_name:基于对象的跨表查询,修改反向查询字段

    -聚合查询
    -aggregate(聚合函数)
    -分组查询:
    '''
    gruop by 谁就以谁做基表
    filter在前,表示where条件
    filter在后,表示havaing
    values在前,表示group by的字段
    values在后,表示取值
    '''



    F和Q查询
    -F:取出数据库某个字段的值

    Q:构造出与(&)或(|)非(~)得关系

    图书管理系统:

  • 相关阅读:
    反射学习(二)
    反射学习(一)
    web项目问题总结
    MyEclipse使用过程中的问题及对应设置的总结
    JSP的四个作用域
    bootstrap 点击模态框上的提交按钮后,模态框不能关闭的解决办法
    xgboost 参数
    CART树
    GridSearchCV
    xgboost使用
  • 原文地址:https://www.cnblogs.com/du-jun/p/10273841.html
Copyright © 2020-2023  润新知