Django⾥的常见数据类型
⽂章⽬录
写在前⾯
1、django⾥的各种数据都是什么类型
数据类型django⾥的常见数据
QuerySet models_name.objects.all()、models_name.objects.filter() 、serializer
model models_()
QueryDict request.GET、request.POET、request.query_params、
OrderedDict serializer.data
dict(字典)request.dataunicode文件格式
2、简单的解释这⼏种类型
QuerySet:Django的Model中⼀个懒加载的对象,QuerySet最终可以通过list(QuerySet.values())序列化成列表,例:
m = User.objects.filter(pk=1)
print(type(list(m.values())))
#输出:<class 'list'>
model:继承⾃ModelBase->type->object
QueryDict:它是字典的⼦类,通过(“键值”)取值,QueryDict是不可变的。如果要修改它,需要使⽤
QueryDict取值
>>> q = QueryDict('a=1', mutable=True)
>>> q.update({'a':'2'})
>>> q.getlist('a')
['1','2']
>>> q['a']# returns the last
'2'
>>> q = QueryDict('a=1&a=2&a=3')
>>> q.items()
[('a','3')]
OrderedDict:相当于⽤列表(有序)来维护字典(⽆序)排序,实际OrderedDict内部维护了⼀个双向链表,他会根据元素加⼊的顺序来排列键的位置
from collections import OrderedDict
d = OrderedDict()
d['a']=1
d['c']=3
d['b']=2
>>> d
OrderedDict([('a',1),('b',2),('c',3)])
for k in d:
print(k, d[k])
a 1
c 3
b 2
3、取值或序列化
aaa表⽰对应的数据类型
数据类型取值或序列化
QuerySet列表: list(aaa.values())
models序列化:(参考下)
QueryDict和字典⼀样取数据
OrderedDict取数据和字典差不多,django⾥⾯可以直接Response(aaa)得到的就是字典
models序列化:
⾸先,你需要在django model的定义中增加⼀个⽅法toJSON,利⽤了django model 能访问 _meta.fields 得到相关属性⽽得到,例⼦如下# models⾥⾯
class User(models.Model):
name=models.CharField(max_length=150,blank=False)
def__unicode__(self):
return'%s'%(self.catname)
def toJSON(self):
import json
return json.dumps(dict([(attr,getattr(self, attr))for attr in[f.name for f in self._meta.fields]]))
# 使⽤时
user=(pk=1)
JSON()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。