新增数据:
book = models.Book(title="菜鸟教程",price=300,publish="菜鸟出版社",pub_date="2008-8-8")
book.save()
books = models.Book.objects.create(title="如来神掌",price=200,publish="功夫出版社",pub_date="2010-10-10")
查询全部数据:
books = models.Book.objects.all()
filter() 方法用于查询符合条件的数据。
books = models.Book.objects.filter(publish=‘菜鸟出版社‘, price=300)
exclude() 方法用于查询不符合条件的数据。
books = models.Book.objects.exclude(publish=‘菜鸟出版社‘, price=300)
get() 方法用于查询符合条件的返回模型类的对象符合条件的对象只能为一个,如果符合筛选条件的对象超过了一个或者没有一个都会抛出错误。
order_by() 方法用于对查询结果进行排序。
books = models.Book.objects.order_by("price") # 查询所有,按照价格升序排列
books = models.Book.objects.order_by("-price") # 查询所有,按照价格降序排列
reverse() 方法用于对查询结果进行反转
books = models.Book.objects.order_by("-price").reverse()
count() 方法用于查询数据的数量返回的数据是整数。
books = models.Book.objects.count() # 查询所有数据的数量
books = models.Book.objects.filter(price=200).count() # 查询符合条件数据的数量
first() 方法返回第一条数据返回的数据是模型类的对象也可以用索引下标 [l0]。
last() 方法返回最后一条数据返回的数据是模型类的对象不能用索引下标 [-1],ORM 没有逆序索引。
exists() 方法用于判断查询的结果 QuerySet 列表里是否有数据。
返回的数据类型是布尔,有为 true,没有为 false。
books = models.Book.objects.exists()
values() 方法用于查询部分字段的数据。
# 查询所有的id字段和price字段的数据
books = models.Book.objects.values("pk","price")
distinct() 方法用于对数据进行去重。
books = models.Book.objects.values_list("publish").distinct()
filter() 方法基于双下划线的模糊查询(exclude 同理)
# 查询价格为200或者300的数据
books = models.Book.objects.filter(price__in=[200,300])
# 查询价格大于200的数据
books = models.Book.objects.filter(price__gt=200)__gt 大于号 ,= 号后面为数字
# 查询价格大于等于200的数据
books = models.Book.objects.filter(price__gte=200) __gte 大于等于,= 号后面为数字
# 查询价格小于300的数据
books=models.Book.objects.filter(price__lt=300)__lt 小于,=号后面为数字。
# 查询价格小于等于300的数据
books=models.Book.objects.filter(price__lte=300) __lte 小于等于,= 号后面为数字。
books=models.Book.objects.filter(price__range=[200,300])__range 在 ... 之间,左闭右闭区间,= 号后面为两个元素的列表。
books=models.Book.objects.filter(title__contains="菜")__contains 包含,= 号后面为字符串。
books=models.Book.objects.filter(title__icontains="python") # __icontains 不区分大小写的包含,= 号后面为字符串。
books=models.Book.objects.filter(title__startswith="菜")__startswith 以指定字符开头,= 号后面为字符串。
books=models.Book.objects.filter(title__endswith="教程")__endswith 以指定字符结尾,= 号后面为字符串。
books=models.Book.objects.filter(pub_date__year=2008) __year 是 DateField 数据类型的年份,= 号后面为数字。
books=models.Book.objects.filter(pub_date__month=10) __month 是DateField 数据类型的月份,= 号后面为数字。
books=models.Book.objects.filter(pub_date__day=01) __day 是DateField 数据类型的天数,= 号后面为数字。
---修改数据
books = models.Book.objects.filter(pk__in=[7,8]).update(price=888)
books = models.Book.objects.filter(pk=7).first()
books.price = 400 books.save()
原文:https://www.cnblogs.com/xiaonannan-001/p/13132510.html