zoukankan      html  css  js  c++  java
  • 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:构造出与(&)或(|)非(~)得关系

    图书管理系统:

  • 相关阅读:
    Java实现HadoopHA集群的hdfs控制
    Hadoop-2.8.5的HA集群搭建
    Python实现bing必应壁纸下载
    使用Python3将Markdown(.md)文本转换成 html、pdf
    使用GitHub作Free图床
    JavaMail实践--实现邮件发送
    Python3实现图片转字符画
    Java编写的Java编辑器_JavaIDE
    Java实现简易版计算器
    Java实现Excel表格操作--API:jxl
  • 原文地址:https://www.cnblogs.com/du-jun/p/10273841.html
Copyright © 2011-2022 走看看