ORM 基本操作包含了增删改查,CRUD操作
CRUD是指计算机处理时的增加(create)读取(read)更新(update)和删除(delete)
ORM CURD核心 - > 模型类.管理器对象
每个继承自models.Model的模型类,都会有一个object对象别同样继承下来,这个对象叫管理器对象,数据库的增删改查可以通过模型类的管理器实现
Class MyModel(models.model):
...
MyModel.objects.create(...) # objects 就是管理器对象
Django ORM使用一种只管的方式把数据表中的数据表示成python对象
创建数据中每一条记录就是创建要给数据对象
方案1
方案2
创建MyModel实例对象,并调用save()进行保存
obj = MyModel(属性=值...)
obj.属性=值
# 执行save()时才插入数据库
obj.save()
数据库的查询需要使用管理器对象进行
通过MyModel.objects管理器方法调用查询方法
all() 查询全部记录,返回querySet查询对象
用法: MyModel.object.all()
等同于selet * from table
返回QuerySet容器对象,内部存放MyModel实例
from bookstore.models import Book
books = Book.objects.all()
for book in books:
print(‘书名‘,book.title)
# 可以在模型类中定义__str__方法,自定义QuerySet中的输出格式
def __str__(self):
return "书名:%s" %(self.title)
values(‘列名1‘,‘列明2‘,,,)
values_list(‘列名1‘,‘列明2‘,..)
MyModel.object.values_list(...) 查询部分列的数据并返回QuerySet 元组形式
order_by() 相当于.all().order_by()后排序
get(条件) 查找符合条件的单一记录
filter(条件) 查找符合条件的多条记录
exclude(条件) 查找符合条件之外的全部记录
条件查询
查询谓词
__exact: 等值匹配
Book.objects.filter(id__exact=1)
等同于select * from book where id=1
__contains: 包含指定值
Book.objects.filter(id__contains=1)
等同于select * from book where id like ‘%1%‘
__startswith:以XXX开始
Book.objects.filter(id__startwith=1)
等同于select * from book where id like ‘1%‘
__endswith:以XXX结束
Book.objects.filter(id__endswith=1)
等同于select * from book where id like ‘%1‘
__gt:大于指定值
Book.objects.filter(id__gt=1)
等同于select * from book where id>1
__gte:大于等于
Book.objects.filter(id__gte=1)
等同于select * from book where id >=1
__lt: 小于
Book.objects.filter(id__lt=1)
等同于select * from book where id <1
__lte: 小于等于
Book.objects.filter(id__lte=1)
等同于select * from book where id <=1
__in:查找数据是否在指定范围内
Book.objects.filter(id__in=[1,2])
等同于select * from book where id in (1,2)
__range: 查找数据是否在指定的范围内
Book.objects.filter(id__range=(2,5))
等同于select * from book where id between 2 and 5
原文:https://www.cnblogs.com/devin-qiu/p/14908190.html