嘻哈飞车族|Django之ORM表高级操作、增删改查、F/Q查询等( 二 )

5.如何配置文件自动查看sql语句?如果你想知道你对数据库进行操作时 , Django内部到底是怎么执行它的sql语句时可以加下面的配置来查看
在Django项目的settings.py文件中 , 在最后复制粘贴如下代码:
LOGGING = {'version': 1,'disable_existing_loggers': False,'handlers': {'console':{'level':'DEBUG','class':'logging.StreamHandler',},},'loggers': {'django.db.backends': {'handlers': ['console'],'propagate': True,'level':'DEBUG',},}}配置好之后 , 再执行任何对数据库进行操作的语句时 , 会自动将Django执行的sql语句打印到pycharm终端上
嘻哈飞车族|Django之ORM表高级操作、增删改查、F/Q查询等
三、 单表查询13个操作返回QuerySet对象的方法有:all()filter()exclude()order_by()reverse()distinct()特殊的QuerySet:values()返回一个可迭代的字典序列values_list()返回一个可迭代的元组序列返回具体对象的:get()first()last() 返回布尔值的方法有:exists()返回数字的方法有:count()返回QuerySet对象的方法有:1.all() 查询所有结果res = models.Movie.objects.all()print(res)
嘻哈飞车族|Django之ORM表高级操作、增删改查、F/Q查询等
2.filter() 条件匹配# 获取电影表中id为1的数据# 不存在就返回空 , 而不是报错 。 get(id=1)不存在就直接报错res = models.Movie.objects.filter(id=1)print(res)
嘻哈飞车族|Django之ORM表高级操作、增删改查、F/Q查询等3.exclude() 取反# 获取id为1之外的数据res = models.Movie.objects.exclude(pk=1)print(res)
嘻哈飞车族|Django之ORM表高级操作、增删改查、F/Q查询等4.order_by() 排序res = models.Movie.objects.order_by('price')# 默认是升序res = models.Movie.objects.order_by('-price')# 减号就是降序5.reverse() 反转res = models.Movie.objects.order_by('price').reverse()# 将次序反转6.distinct() 去重# 去重:去重的前提 必须是由完全一样的数据的才可以res = models.Movie.objects.values('title','price').distinct()特殊的QuerySet:7.values() 获取指定字段对 列表套字典返回一个可迭代的字典序列
values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet , 运行后得到的并不是一系列model的实例化对象 , 而是一个可迭代的字典序列
# values()QuerySet对象[{},{},{}]获取指定字段对的数据# 返回一个可迭代的字典序列res = models.Movie.objects.values('title','publish_time')
嘻哈飞车族|Django之ORM表高级操作、增删改查、F/Q查询等8.values_list() 获取指定字段对** 列表套字典 列表套元组返回一个可迭代的元组序列
values_list(*field): 它与values()非常相似 , 它返回的是一个元组序列 , values返回的是一个字典序列
res = models.Movie.objects.values_list('title','price')print(res)
嘻哈飞车族|Django之ORM表高级操作、增删改查、F/Q查询等返回具体对象的:9.get 直接获取对象 , 不存在就报错