django数据库增删改查

喜夏-厌秋 提交于 2019-12-05 23:52:46

查:

select* from  UserInfo ;
models.UserInfo.objects.all()

select user from  UserInfo ;
models.UserInfo.objects.all().values('user')    #只取user

select userid from  UserInfo;
models.UserInfo.objects.all().values_list('id','user')    #取出id和user列,并生成一个列表

使用get
select* from  UserInfo  where id =’1’;
models.UserInfo.objects.get(id=1) #取出id1的数据

select * from  UserInfo  where user=’yang’;
models.UserInfo.objects.get(user=‘yang’)#取出user=‘yang’的数据 

使用filter
models.UserInfo.objects.filter(id=1)
models.UserInfo.objects.filter (user=‘yang’)

get和filter方法的区别
get方法是从数据库的取得一个匹配的结果,返回的是一个记录对象,如果记录不存在的话,它会报错。
如果你用django的get去取得关联表的数据的话,而关联表的数据如果多于2条的话也会报错
filter方法是从数据库的取得匹配的结果,返回一个对象列表QuerySet对象,如果记录不存在的话,它会返回[]

输入参数
get 的参数只能是model中定义的那些字段,只支持严格匹配
filter 的参数可以是字段,也可以是扩展的where查询关键字,如in,like等

返回值
get 返回值是一个定义的model对象
filter 返回值是一个新的,然后可以对QuerySet在进行查询返回新
QuerySet对象,支持链式操作
QuerySet一个集合对象,可使用迭代或者遍历,切片等,但是不等于list类型(使用一定要注意)

异常
get 只有一条记录返回的时候才正常,也就说明get的查询字段必须是主键或者唯一约束的字段。当返回多条记录或者是没有找到记录的时候都会抛出异常
filter 有没有匹配的记录都可以

fileter()详情:


增:

insertinto UserInfo(user,pwd) values(‘yang’,’123456’);
models.UserInfo.objects.create(user=‘yang’,pwd='123456')

或者
obj = models.UserInfo(user=‘yang’,pwd='123456')
obj.save()
或者
dic = {'user':’yang’,'pwd':'123456'}
models.UserInfo.objects.create(**dic) 


删:

delete from  UserInfo  where user=’yang’;

models.UserInfo.objects.filter(user=‘yang’).delete()

 

改:

updateUserInfo  set pwd=’520 where user=yang”;
models.UserInfo.objects.filter(user=‘yang’).update(pwd='520')
或者
obj =models.UserInfo.objects.get(user=‘yang’)
obj.pwd = '520'
obj.save()

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!