首页 > 其他 > 详细

django orm笔记

时间:2016-05-27 16:20:56      阅读:123      评论:0      收藏:0      [点我收藏+]

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笔记

原文:http://www.cnblogs.com/wolover/p/5534836.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!