表查询回顾

基于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()
            
	跨表查询
        正反向的概念:
            外键字段在谁那儿 谁就是正向
            没有外键字段的  就是反向
            
    
        口诀:
            正向查询按字段
            反向查询按表名小写
原文地址:https://www.cnblogs.com/aden668/p/11738727.html