使用django console
执行
from movie.models import *
def showsql():
from django.db import connection
queries = connection.queries
print queries[-1]['sql']
# 获取所有对象
Movie.objects.all()
showsql()
# 对象切片,懒加载
Movie.objects.all()[0:20]
# 获取单个对象
Movie.objects.get(mid=147)
# 获取第一个
Movie.objects.first()
# 获取最后一个
Movie.objects.last()
# 获取记录总数
Movie.objects.count()
# 过滤
Movie.objects.filter(mname='麻辣学院')
# 模糊查询
# 以爱情开头
Movie.objects.filter(mname__endswith='爱情')
# 以爱情结尾
Movie.objects.filter(mname__startswith='爱情')
# 包含
Movie.objects.filter(mname__contains='爱情')
# 完全相等
Movie.objects.filter(mname__exact='麻辣学院')
# 忽略大小写
Movie.objects.filter(mname__istartswith='h')
# 查询空值
Movie.objects.filter(mname__isnull=True)
# 多条件查询
Movie.objects.filter(mname__contains='爱情',mid=1144)
# 部分查询
Movie.objects.values('mname','mid').filter(mname__contains='爱情')
# 排除
Movie.objects.filter(mname__contains='爱情').exclude(mname__startswith='爱情')
# 排序
Movie.objects.order_by('mid')
# 降序
Movie.objects.order_by('-mid')
# 日期查询
# 大于某时间
Post.objects.filter(created__gt='2017-10-20')
# 时间范围
Post.objects.filter(created__range=('2017-10-20','2017-11-20'))
改变对象打印
class Movie(models.Model):
...
def __unicode__(self):
return 'uMovie:%s,%s'%(self.mid, self.mname)
网友评论