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笔记的主要内容,如果未能解决你的问题,请参考以下文章

第六章 Django框架学习——ORM详解

Django ORM中常用字段和参数

Django ORM中常用字段和参数

Django ORM中常用字段和参数

Django ORM常用字段及参数

如何使用 django ORM 在 postgres 中仅选择日期部分