启动mysql日志服务 django的查询函数

1)使用下面的命令打开mysql配置文件 去除68 69行注释 然后保存
   sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
2) 重启mysql 服务   就会产生mysql日志文件
	sudo service mysql restart
3)  打开mysql的日志文件
	/var/log/mysql/mysql.log    是mysql日志文件 所在 的位置

查询函数 
	通过模型类.objects 属性可以调用如下函数  实现对模型类对应的数据表的查询
	函数名
		get 
		返回表中满足条件的一条且只能一条数据
		返回值是一个模型的类对象
		如果查询出多条数据  会抛出异常
		
		all
		返回模型类对应的表格中所有数据 
		返回值类型是QuerySet类型
		
		filter
		返回满足条件的数据
		返回值是QuerySet类型
		 
		 条件格式 属性名 __条件名  = 值
		 a)判等	条件名  exact
		 BookInfo.objects.get(id_exact=1)
		 b) 模糊查询
		 查询书名包含xx  
		 contains	(xx__contains='传')
		 endswith (xx__endswith = '部')
		 startswith (xx__startswith = 'xx' )
		 c) 空查询 isnull
		 d) 范围查询 in
		 xx.objects.filter(id__in = [1,3,5])
		 e)比较查询
		 xx.objects.filter(id__gt=3)
		 日期查询
		 bpub_date_year = 1980
		 bpub_date__gt = date(1980,1,1)
		
		exclude 返回不满足条件的数据 
		order_by 对查询结果进行排序 返回值 QuerySet类型 
		xx.objects.filter( id__gt=3 ).order_by('-id')
		
		F对象 两个属性进行比较
			from django.db.models import F
			xx.objects.filter(bread__gt=F('bcomment'))
			xx.objects.filter(bread__gt=F('bcomment')*2)
		Q对象 
			用于查询时条件之间的逻辑关系
			not and or 可以用Q对象进行&|~操作
			
			import django.db.models import Q
			// 且的关系
			BookInfor.objects.filter( id__gt = 3, bread__gt=30 )
			BookInfo.objects.filter( Q(id__gt=3) & Q(bread__gt=30) ) 
			// 或的关系
			BookInfo.objects.filter( Q(id__gt=3) | Q(bread__gt=30) ) 
			// 
			BookInfo.objects.filter( ~Q(id__gt=3) )
		
		聚合函数
			
			from django.db.models import Sum,Count,Max,Min,Avg
			xx.objects.all().aggregate( Count('id') )
			返回值 : { 'id__count':5 }
			
			xx.objects.all().count(  )
			xx.objects.filter(id__gt=3).count()

在这里插入图片描述

查询集特性
惰性查询
	只有在实际使用查询集中的数据的时候才会 发生 对 数据库的真正查询
缓存特性
	当使用的是同一个查询集时
	第一次的时候会实际查询
	然后把结果 缓存起来 之后再使用这个查询集时 使用的是缓存中的结果

拿查询集的第一条数据
	books[0]
	books[0:1].get()
判断一个查询集是否有数据 exists
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值