QuerySet与QueryDict比较

QuerySet,本质上是一个给定的模型的对象列表,虽然名字中带有set,刚开始会让我觉得其性质应该和集合有些许联系,但是就像Java和javascript那样,就是彻彻底底两种不同的语言,为什么说他是对象列表而不是像其名字那样的集合呢,因为它是有序的,并且表现形式上也更像是一个列表

<QuerySet [<Cus: Cus object>, <Cus: Cus object>]>

对于QuerySet最为神奇的就是,可以将返回的QuerySet链起来形成一串连续的查询

Book.objects.filter(year_published__gt=1990) 
            .exclude(author='Richard Dawkins') 
            .order_by('author', '-year_published')

并且也可以像列表那样,通过index去获取所需的第几条信息,当然使用遍历去获取其中的每一条信息也是没问题的.

QueryDict是HttpRequest获取的对象,GET和POST属性是django.http.QuertDict类的实例,数据结构类似于字典,以键值对的形式存在,但是和字典最大的区别就是,QueryDict允许存在相同的键.

{'info':['zsb', 111]}

QueryDict中数据获取方式可以像字典那种使用dict[‘info’]或者dict.get(‘info’),不过需要注意的是,如果存在一键对于多值,使用get只会获得最后一个值,如果想要获取所有的值就需要使用

dict.getlist('info')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章