zoukankan      html  css  js  c++  java
  • Python3学习笔记之十九

    1.    什么是orm?

           object  relation mapping  对象关系映射

           一旦确定表关系为一对多:在多的表中添加关联字段。

           一对一:可以在任意一张表添加关联字段。

           多对多:创建第三张表,主键id,两个关联字段,关联另外两张表的主键。

           添加记录: 

    # 方式1:
    			#obj=Book.objects.create(title="python",publishDate="2012-12-12",price=100)
    			
    			   注意:Book.objects.create()的返回值是当前添加的记录对象
    			# 方式2:
    			book_obj=Book(title="python2",publishDate="2012-12-12",price=100)
    			book_obj.save()
    

      查询记录:

           

                            <1> all():                 查询所有结果(queryset)
    			<2> filter(**kwargs):      它包含了与所给筛选条件相匹配的对象(queryset)	 
    			<3> get(**kwargs):         返回与所给筛选条件相匹配的对象,返回结果有且只有一个,
    									   如果符合筛选条件的对象超过一个或者没有都会抛出错误。   (model对象)
    			<5> exclude(**kwargs):     它包含了与所给筛选条件不匹配的对象	 
    			
    			<4> values(*field):        返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列
    									   model的实例化对象,而是一个可迭代的字典序列
    			<9> values_list(*field):   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
    			 
    			<6> order_by(*field):      对查询结果排序
    			
    			<7> reverse():             对查询结果反向排序
    			 
    			<8> distinct():            从返回结果中剔除重复纪录
    			 
    			<10> count():              返回数据库中匹配查询(QuerySet)的对象数量。
    			 
    			<11> first():              返回第一条记录
    			 
    			<12> last():               返回最后一条记录
    			 
    			<13> exists():             如果QuerySet包含数据,就返回True,否则返回False

                                            

                  双下划线的查询:

                  book_list=Book.objects.filter(price__gt=60)
                  book_list=Book.objects.filter(price__lt=60)
                  book_list=Book.objects.filter(title__contains="py")
                  book_list=Book.objects.filter(title__startswith="python")
                  book_list=Book.objects.filter(price__in=[60,70,100])
                  book_list=Book.objects.filter(price__range=[50,99])

      

    删除记录,更新记录

     删除:
    		    Book.objects.filter().delete() # 默认级联删除
    			
    		更新:
                Book.objects.filter().update(price=50,.....)
    

      

    2.      跨表操作:

            

  • 相关阅读:
    Vue $emit()不触发方法的原因
    java 定时任务之一 @Scheduled注解(第一种方法)
    Dubbo的使用及原理浅析.
    Android App 安全的HTTPS 通信
    详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)
    IDEA 2018集成MyBatis Generator 插件 详解
    自建证书配置HTTPS服务器
    Jsoup(一)Jsoup详解(官方)
    Android使用最小宽度限定符时最小宽度的计算
    可显示行号的log工具
  • 原文地址:https://www.cnblogs.com/yangjianbo/p/8401855.html
Copyright © 2011-2022 走看看