Django中object.all是什么东西
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Django中object.all是什么东西,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1686字,纯文字阅读大概需要3分钟。
内容图文
![Django中object.all是什么东西](/upload/InfoBanner/zyjiaocheng/1315/8e905b575616444ca8c506ee0c0a13ba.jpg)
先抛出一个问题。银行就相当于一个数据库,你去银行取钱存钱办卡销卡,是你告诉银行柜员方便还是你自己去操作电脑办卡取卡方便?(你还不一定会,假设自动存款机还没来),object在数据库中就相当于银行里得银行柜员。
步入正题:
在django中的view.py中,我们可能回经常见到 book_set= Book.objects.all(),book_list = Book.objects.get()?
让我们疑惑的问题是,objects是个什么东西,book_set 和book_list 又是个神马东西?
object是是Manager类型的对象,定义在from django.db import models中,是默认生成的,也就是objects = Modes.Manage() 。用途是数据库和模型对象交互的接口(api)。book_set返回的是个集合,book_list返回的是个列表。
book = Book.objects.all(),这个翻译成银行得话就是,一个叫BOOK得一类人通过objects得柜员,查询BOOK得银行余额和银行卡信息,结果得到一个queryset对象。
首先对比来看一下(数据来自于自强学堂)
1. QuerySet 创建对象的方法
>>>
from blog.models import Blog >>> b
= Blog(name = ‘Beatles Blog‘ , tagline = ‘All the latest Beatles news.‘ ) >>> b.save()
总之,一共有四种方法
# 方法 1
Author.objects.create(name
=
"WeizhongTu"
, email
=
"tuweizhong@163.com"
)
# 方法 2
twz
= Author(name = "WeizhongTu" , email = "tuweizhong@163.com" ) twz.save()
# 方法 3
twz
= Author() twz.name
=
"WeizhongTu"
twz.email
=
"tuweizhong@163.com"
twz.save()
# 方法 4,首先尝试获取,不存在就创建,可以防止重复
Author.objects.get_or_create(name
=
"WeizhongTu"
, email
=
"tuweizhong@163.com"
)
# 返回值(object, True/False)
|
备注:前三种方法返回的都是对应的 object,最后一种方法返回的是一个元组,(object, True/False),创建时返回 True, 已经存在时返回 False
对比得知,object这个管理器对象帮了我们很多忙,我们不用实例化对象,不用save(),而是交给Author.object去实现。
举个例子吧,如果我们把数据库比作银行,那么object对象就相当于柜员,能帮助你处理各种业务。如果没有得话,去银行取钱,我们得自己登记,自己去金库拿钱,记账,锁门.........不太现实吧。同理,你去数据库取个数据,没有objects对象,是不是很麻烦?
其实换个角度来讲,你去银行办理得一些业务,是银行柜员帮你在银行得数据库里进行得增删改查操作,银行柜员得名字可以叫object(默认得名字),当然也可以叫小李,小王,不过你得自定义罢了。xiaoli = models.Manage()也是可以得。
你看看,此时此刻,有没有认识到,一切皆对象,这个面向对象编程得伟大之处。
另外关于ApI,给大家推荐一篇不错得文章
https://blog.csdn.net/cumtdeyurenjie/article/details/80211896
原文:https://www.cnblogs.com/chaojiyingxiong/p/9703609.html
内容总结
以上是互联网集市为您收集整理的Django中object.all是什么东西全部内容,希望文章能够帮你解决Django中object.all是什么东西所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。