Django ORM单表操作之增删改查
2021/8/3 23:08:34
本文主要是介绍Django ORM单表操作之增删改查,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
单表新增
新增方法2个,一个是book.save(),另一个是book.object.create()
这个2个方法都有返回值,返回的是你添加的内容,可以调用里面你添加的属性
from my_app.models import Book # 先导包 导入book类 def orm_add(request): #对book表添加方式1 pub_date这个是日期格式必须是 年-月-日 new_obj = Book(title="go书",price=100,pub_date="2021-1-3",publish="人民出版社") print(new_obj) print(new_obj.title) new_obj.save() # save会对数据库表进行对记录的增加操作 #对book表添加方式2 create()方法 直接调用save保存,create是有返回值的 new_obj = Book.objects.create(title="java", price=300, pub_date="2021-4-3", publish="南京出版社") #object.create()会返回一个对象,这个对象就是插入数据的数据,里面有插入时候的title price pubdate publish的属性 print(new_obj) print(new_obj.title) return HttpResponse("实例已添加")
单表查询
查询中要注意返回的是一个queryset的对象类型很多查询方法都要看得出的结果类型是否是个queryset. queryset 是个序列对象,允许像列表一样操作遍历
返回结果默认是 Book object (1) 为了看得清楚,可以在book类下面设置__str__,让对象返回的时候默认打印对象的title属性
返回值就改为了 <QuerySet [<Book: python书>, <Book: php>, <Book: java>]>
常用方法
方法 | 用处 | 调用对象 | 返回对象 | 例子1 | 例子2 | 例子3 | 例子4 | 例子5 | 例子6 |
---|---|---|---|---|---|---|---|---|---|
all() | 查询所有结果 | <QuerySet [<Book: Book object (1)>, <Book: Book object (2)>]> | QuerySet | Book.object.all() | - | - | - | ||
filter(**kwargs) | 筛选 | Queryset | Queryset | Book.object.all().filter(price=100) | 1 | 1 | 1 | ||
get(**kwargs): | 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,大于1个或者0个就报错 | Queryset | Module | Book.object.get() | 1 | 1 | 1 | ||
exclude(**kwargs) | 它包含了与所给筛选条件不匹配的对象 | QuerySet | QuerySet | Book.objects.exclude() | 1 | 1 | 1 | ||
order_by(*field) | 对查询结果排序 | QuerySet | QuerySet | Book.objects.order_by("-id") | id前加-代表降序, 不加符号代表升序 | Book.objects.order_by("id","price") | 也可以对多个表头进行排序 | ||
count() | 返回数据库中匹配查询(QuerySet)的对象数量 | QuerySet | INT | 1 | 1 | 1 | 1 | ||
first() | 返回第一条记录 | QuerySet | module对象 | Book.objects.all().first() | 1 | 1 | 1 | ||
last() | 返回最后一条记录 | QuerySet | module对象 | Book.objects.all().last() | 1 | 1 | 1 | ||
exists() | 如果QuerySet包含数据,就返回True,否则返回False | QuerySet | Bool | 因为他只取表中的一条数据,所以操作速度很快 | 1 | 1 | 1 | ||
values(*field) | 待补 | QuerySet | module对象 | Book.objects.all().last() | 1 | 1 | 1 | ||
values_list(*field) | 待补 | QuerySet | module对象 | Book.objects.all().last() | 1 | 1 | 1 | ||
distinct() | 待补 | QuerySet | module对象 | Book.objects.all().last() | 1 | 1 | 1 | ||
reverse() | 待补 | QuerySet | module对象 | Book.objects.all().last() | 1 | 1 | 1 |
这篇关于Django ORM单表操作之增删改查的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24MongoDB资料:新手入门完全指南
- 2024-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享