zoukankan      html  css  js  c++  java
  • 表查询回顾

    基于django settings源码实现自己的项目
    配置文件的可插拔式设计
    dir()
    importlib
    反射

    单表查询
        只要是queryset对象 就可以无限制的点击queryset对象的方法
    	13条
    		1.all()  # 查所有
    		2.filter()  # 根据条件过滤 多个条件之间是and关系
            3.get()  # 直接获取数据对象  查询条件不存在直接报错
            4.first()  # 取queryset的第一个数据对象
            5.last()  # 取queryset的最后一个数据对象
            6.exclude()  # 除此之外 
            7.values()  # queryset 类似于列表套字典
            8.values_list()  # queryset 类似于列表套元组
            9.count()  # 统计数据个数
            10.distinct()  # 一定要是完全一样的数据才能去重
            11.order_by()  # 排序 默认是升序 加负号就变成降序
            12.reverse()  # 反转 排序之后才能反转
            13.exists()  # 判断queryset是否有值 结果是个布尔值
            
    	神奇的双下线的查询
            price__gt
            price__lt
            price__gte
            price__lte
            price__in=[100,200,300]
            price__range=(200,800)
            title__contains  包含  模糊匹配
            title__icontains  忽略大小写
            publish_date__year  只针对年份
            publish_date__month  只针对月份
            title__startswith
            title__endswith 
            
    	
    
    多表查询
        前期表准备
            图书管理系统
                一对多
                多对多
                一对一
            
    	外键字段的增删改查
            一对多字段
                create(publish_id=1)
                create(publish=publish_obj)
                
                update(publish_id=2)
                update(publish=publish_obj1)
                
                models.Publish.objects.filter(pk=2).delete()
                # orm外键默认是级联更新 级联删除的
            
            多对多字段
                # 朝第三张关系表中添加数据
                book_obj.authors.add(1)
                book_obj.authors.add(1,2,3,4)
                book_obj.authors.add(author_obj)
                book_obj.authors.add(author_obj,author_obj1,author_obj2)
                # 朝第三张表修改数据
                book_obj.authors.set((1,))
                book_obj.authors.set((1,2,3))
                book_obj.authors.set((author_obj,))
                book_obj.authors.set((author_obj,author_obj1))
                # 朝第三张表删除关系
                book_obj.authors.remove(1)
                book_obj.authors.remove(1,2,3,4)
                book_obj.authors.remove(author_obj)
                book_obj.authors.remove(author_obj,author_obj1)
                # 朝第三张表清空当前书籍对象所有的记录
                book_obj.authors.clear()
                
    	跨表查询
            正反向的概念:
                外键字段在谁那儿 谁就是正向
                没有外键字段的  就是反向
                
        
            口诀:
                正向查询按字段
                反向查询按表名小写
  • 相关阅读:
    linux下文件搜索命令学习笔记
    【转】C++格式化输出
    UNIX中的文件类型
    Unix内核中打开文件的表示
    网络编程学习笔记:linux下的socket编程
    TCP协议学习笔记(一)首部以及TCP的三次握手连接四次挥手断开
    C/C++源代码从写完到运行发生了什么
    C++ 函数形参发生动态绑定时指针增长步长与静态类型一致
    C++中为什么要将析构函数定义成虚函数
    C++求一个十进制的二进制中1的个数
  • 原文地址:https://www.cnblogs.com/aden668/p/11738727.html
Copyright © 2011-2022 走看看