明霞山资源网 Design By www.htccd.com
Book表的数据显示
id title price publish_id 2 Linux 30 1 3 项塔兰 45 2 4 追风筝的人 39.9 3 5 富爸爸 23 10
创建queryset 视图 函数, 可以使用的列表的方法,按索引,切片的方法取值,得到一个列表对象
def queryset(request): ret1 = Book.objects.all()[0] #QuerySet支持索引,切片操作 # print(ret1) #linux 得到一个具体的对象 ret2 = Book.objects.all()[1:3] # print(ret2)#<QuerySet [<Book: 项塔兰>, <Book: 追风筝的人>]> # ret3 = Book.objects.all()[:2] ret4 = Book.objects.all()[::2]# 按步长取,隔一个取一个,,,[::1}挨着取,一个个都取 # print(ret3)#<QuerySet [<Book: Linux>, <Book: 项塔兰>]> print(ret4)#[<Book: Linux>, <Book: 追风筝的人>]
-----
可迭代特性, iterator() ,exists()
主要是QuerySet的缓存机制,如果一次从数据库取出很多数据,就有可能导致程序崩溃,可以利用iterator()方法,做性能优化,
为了判断获取到的对象是否有值,没有必要遍历所有的对象,用exists()方法()
#可迭代特性 book_list = Book.objects.all() #取出数据库的所有对象,要考虑cache机制,如果数据量太大,程序就会崩溃 #判断book_list 是否有值,假如有很多数据,就没有必要全部查一遍才得知有数据,只要查到有1条数据,就可以知道book_list有数据,就用exists()方法 if book_list.exists(): print('ok') #ok ,说明数据库有值 #利用itertor()方法 book_list1 = Book.objects.all().iterator() #这次就不能用2次for循环,第一次for循环,就已经把遍历完了, book_list1 = Book.objects.all().iterator() #这次就不能用2次for循环,第一次for循环,就已经把遍历完了,用next()方法每次取出一个值, print(next(book_list1)) #linux print(next(book_list1))#项塔兰 print(next(book_list1))#追风筝的人 Book.objects.filter(id=2).update(price=100.00)#对数据库数据进行更新,但并没有执行,只有在用到的时候在执行 for obj in book_list: # 在for循环时开始执行sql语句查询 print(obj.title,obj.price) #如果for循环2次,打印2次结果,也是执行一次sql语句,因为存在sql的缓存机制,把第一次查询的结果放到缓存里, #下次从缓存里调 """ Linux 30.00 ---没有更新数据之前 项塔兰 45.00 追风筝的人 39.90 富爸爸 23.00 """ """ Linux 100.00 ----更新数据之后 项塔兰 45.00 追风筝的人 39.90 富爸爸 23.00 """
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
明霞山资源网 Design By www.htccd.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
明霞山资源网 Design By www.htccd.com
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。