django orm笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django orm笔记相关的知识,希望对你有一定的参考价值。
1. 用orm取部分字段
a=User.objects.all().values("username","id")
print a
[{‘username‘: u‘admin‘, ‘id‘: 1L}, {‘username‘: u‘gyf‘, ‘id‘: 4L}, {‘username‘: u‘zkp‘, ‘id‘: 2L}]
a=User.objects.all().values_list("username","id")
print a
[(u‘admin‘, 1L), (u‘gyf‘, 4L), (u‘zkp‘, 2L)]
values取得的每一行元素是个字典
values_list取得的每一行元素是个元组
取得到的是是一个ValuesListQuerySet类型的数据。 其也是延迟型的。
能够很好的支持分页。只有在取得时候在会到数据库中查询
2. django orm中关于外键进行查询时
a=User.objects.filter(project__name="中文站")
3. django 忽略大小写的精确匹配
a=User.objects.get(name__iexact="Admin")
4. django 大小写敏感的包含匹配
a=User.objects.get(name__contains="admin")
5. django 大小写不敏感的包含匹配
a=User.objects.get(name__icontains="admin")
6. in 匹配
a=User.objects.get(name__in=["admin"])
7其他:
gt 大于
gte 大于等于
lt 小于
lte 小于等于
startwith 大小写敏感的已...开头
istartwith 大小写不敏感的已..开头
endwith 大小写敏感的已..结尾
iendwith 大小写不敏感的已...结尾
8. User.objects.get(pk=11)
objects.get 是会立即执行的。 其和filter不一样。 filter是延迟的。!
9. QuerySet order_by方法:
queryset=QuerySet.order_by("-tid") # 从大到小排序 “tid”从小到大排序
10.django中models中多数据库的处理
a.通过控制objects 自定义manager可以控制其读的时候用的数据库。
b.通过控制save方法 可以控制写的时候用的数据库。
11.不等于的实现
~Q(id = ‘0‘)
12.执行原生SQL
以上是关于django orm笔记的主要内容,如果未能解决你的问题,请参考以下文章