• 表查询回顾


    基于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()
                
    	跨表查询
            正反向的概念:
                外键字段在谁那儿 谁就是正向
                没有外键字段的  就是反向
                
        
            口诀:
                正向查询按字段
                反向查询按表名小写
  • 相关阅读:
    语录
    Python 自动化Web测试
    HTTP监视网络
    网络端口的转发和重定向
    [翻译]对为Microsoft Robotics Studio的设计做贡献感兴趣?
    [翻译]谈话记录:介绍Microsoft Robotics Studio
    [视频]名家讲坛ASP.NET之父Scott Guthrie[上海站]
    如何使用AJAX RoundedCorners Extender控件(视频字幕)
    给SlideShowExtender增加链接
    delphi7调用c#写的webservice(.net2.0)
  • 原文地址:https://www.cnblogs.com/aden668/p/11738727.html
Copyright © 2020-2023  润新知