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可以控制其读的时候用的数据库。

clipboardclipboard[1]

b.通过控制save方法 可以控制写的时候用的数据库。

11.不等于的实现

~Q(id = '0') 

12.执行原生SQL

clipboard[2]

posted on 2016-05-27 15:39  wolover  阅读(394)  评论(0编辑  收藏  举报