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.      跨表操作:

        

原文地址:https://www.cnblogs.com/yangjianbo/p/8401855.html