模型层
模型层(ORM操作)
		单表操作
		
			DateField里面的参数
				auto_now_add:创建数据记录的时候会把当前时间添加到数据库。
				auto_now:每次更新数据记录的时候会更新该字段。
			
			************强调:只要是queryset对象就可以无限制的点queryset的方法**************
			queryset对象可以作为判断的条件,为空的时候对应的布尔值也是False
			
			models.Book.objects.filter().filter().filter().filter().filter().filter()
			<1> all():                  查询所有结果

			<2> filter(**kwargs):       它包含了与所给筛选条件相匹配的对象

			<3> get(**kwargs):          返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。

<4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象

			<5> order_by(*field):       对查询结果排序('-id')/('price')
			
			<6> reverse():              对查询结果反向排序 	>>>前面要先有排序才能反向
			<7> count():                返回数据库中匹配查询(QuerySet)的对象数量。

			<8> first():                返回第一条记录
			<9> last():                返回最后一条记录
			<10> exists():              对查询出来的QuerySet进行有误数据的判断,有就返回True,否则返回False
			<11> values(*field):        返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列                             model的实例化对象,而是一个可迭代的字典序列

			<12> values_list(*field):   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列

			<13> distinct():            从返回结果中剔除重复纪录
			
		
		返回QuerySet对象的方法有:
all()
filter()
exclude()
order_by()
reverse()
distinct()
		特殊的QuerySet
				values()       返回一个可迭代的字典序列
				values_list() 返回一个可迭代的元祖序列
			
		返回具体对象的
				get()
first()
				last()
		
			
		
		多表操作
			如何判断表关系:一方能否有多个另一方,另一方能否有多个一方
			一对一:其实就是一张表被我认为拆分成了两张表而已,主要是为了缓解查询压力
			一对多:通常建立在多的那一方
			多对多:多对多字段建立在哪张表里都可以,但是通常建立在查询频率比较高的那张表里,为了后期的正向查询提供方便
			
			
			多对多字段数据的增删改查
					add()
					remove()
					set()
					# 前面三个可以支持传多个参数 并且参数既可以是对象,也可以是数据的id,不要混着用!!!
					clear()
					# 直接清空,不需要传参数
				正向查询按字段,反向查询按表名小写
				
				正向与反向
 一对一
正向:author---关联字段在author表里--->authordetail		按字段
反向:authordetail---关联字段在author表里--->author		按表名小写
查询wushen作者的手机号 正向查询

查询地址是:山东 的作者名字 反向查询

一对多
正向:book---关联字段在book表里--->publish      按字段
反向:publish---关联字段在book表里--->book      按表名小写
_set.all()因为一个出版社对应着多个图书
					# 多对多
						# 正向:book---关联字段在book表里--->author		按字段
						# 反向:author---关联字段在book表里--->book		按表名小写
_set.all()因为一个作者对应着多个图书
查询书籍是火影忍者的作者 正向查询

查询北方出版社的书籍 反向查询

			
			
			跨表查询
				正向查询按字段,反向查询按表名小写!!!
			
		
			聚合查询
			
			
			分组查询
		
		F与Q查询
			F查询
				
			Q查询
                    
                
                
            
        
浙公网安备 33010602011771号