Django学习之模型的操作详解
2017-06-06 22:30
429 查看
本文和大家分享的主要是django中模型的简单操作,一起来看看吧,希望对大家学习django有所帮助。
class Person_Tbl(models.Model):
'''
定义人物类
'''
name = models.CharField(max_length=254,default='') #姓名
sex = models.CharField(max_length=125,default='') #性别
height = models.IntegerField(default=170) #身高
birthday = models.DateTimeField(auto_now_add=True) #生日
phone = models.BigIntegerField(default=0) #电话
info = models.TextField(default='') #基本信息
一、增加一个对象
(1)先创建一个对象,然后执行save
person = Person_Tbl() #只是创建,并没有保存到数据库中
person.name = name
person.sex = sex
person.height = height
person.birthday = birthday
person.phone = phone
person.info = text
person.save() #真正保存到数据库中
(2)直接使用create()
person.objects.create(name=name, sex=sex, height=height, birthday=birthday,phone=phone,text=text)
二、查找一个对象
(1)获取表中的全部对象
all_person = Person_Tbl.objects.all()
(2)使用filter选择符合条件的对象集合
person = Person_Tbl.objects.filter(name=name)
(3)使用get选择符合条件的对象,有且存在一个对象的时候正确,否则会返回异常
person = Person_Tbl.objects.get(name=name)
(4)联合查询
person = Person_Tbl.objects.filter(name=name, sex=sex) #返回与查询字段name和sex都相同的对象
person = Person_Tbl.objects.filter(name=name).exclude(sex=sex) #返回与查询字段name相同,但是与查询字段sex不同的对象
person = Person_Tbl.objects.filter(name=name).values('name')#返回与查询字段name相同的对象,但是只返回name字段
person = Person_Tbl.objects.filter(name=name).values_list('name')返回与查询字段name相同对象,但是只返回name字段
person = Person_Tbl.objects.filter(name=name).distinct()#返回与查询字段name相同的对象,并去除重复
person = Person_Tbl.objects.filter(name=name).order_by('name')#返回与查询字段name相同对象,以name进行排序
person = ConfigTbl.objects.filter(~Q(name = name) #返回与查询字段name不相同对象
三、删除一个对象
(1)先取出要删除的对象,然后使用delete方法
person = Person_Tbl.objects.filter(name=name)
person = person[0]
person.delete()
#注意:使用filter的时候返回的QuerySet集合,所以需要选取出集合的对象
person = Person_Tbl.objects.get(name=name)
person.delete()
#注意:使用get的时候返回的是Person_Tbl的一个对象
person = Person_Tbl.objects.filter(name=name).delete()
四、修改一个对象
(1)获取对象,然后修改,最后save()
person = Person_Tbl.objects.filter(name=name)
cur_person = person[0]
cur_person.name = name
cur_person.height = 170
cur_person.save()
person = Person_Tbl.objects.get(name=name)
person.name = name
person.height = 170
person.save()
(2)使用update()
person = Person_Tbl.objects.filter(name=name).update(name=name, height=170)
来源:简书
class Person_Tbl(models.Model):
'''
定义人物类
'''
name = models.CharField(max_length=254,default='') #姓名
sex = models.CharField(max_length=125,default='') #性别
height = models.IntegerField(default=170) #身高
birthday = models.DateTimeField(auto_now_add=True) #生日
phone = models.BigIntegerField(default=0) #电话
info = models.TextField(default='') #基本信息
一、增加一个对象
(1)先创建一个对象,然后执行save
person = Person_Tbl() #只是创建,并没有保存到数据库中
person.name = name
person.sex = sex
person.height = height
person.birthday = birthday
person.phone = phone
person.info = text
person.save() #真正保存到数据库中
(2)直接使用create()
person.objects.create(name=name, sex=sex, height=height, birthday=birthday,phone=phone,text=text)
二、查找一个对象
(1)获取表中的全部对象
all_person = Person_Tbl.objects.all()
(2)使用filter选择符合条件的对象集合
person = Person_Tbl.objects.filter(name=name)
(3)使用get选择符合条件的对象,有且存在一个对象的时候正确,否则会返回异常
person = Person_Tbl.objects.get(name=name)
(4)联合查询
person = Person_Tbl.objects.filter(name=name, sex=sex) #返回与查询字段name和sex都相同的对象
person = Person_Tbl.objects.filter(name=name).exclude(sex=sex) #返回与查询字段name相同,但是与查询字段sex不同的对象
person = Person_Tbl.objects.filter(name=name).values('name')#返回与查询字段name相同的对象,但是只返回name字段
person = Person_Tbl.objects.filter(name=name).values_list('name')返回与查询字段name相同对象,但是只返回name字段
person = Person_Tbl.objects.filter(name=name).distinct()#返回与查询字段name相同的对象,并去除重复
person = Person_Tbl.objects.filter(name=name).order_by('name')#返回与查询字段name相同对象,以name进行排序
person = ConfigTbl.objects.filter(~Q(name = name) #返回与查询字段name不相同对象
三、删除一个对象
(1)先取出要删除的对象,然后使用delete方法
person = Person_Tbl.objects.filter(name=name)
person = person[0]
person.delete()
#注意:使用filter的时候返回的QuerySet集合,所以需要选取出集合的对象
person = Person_Tbl.objects.get(name=name)
person.delete()
#注意:使用get的时候返回的是Person_Tbl的一个对象
person = Person_Tbl.objects.filter(name=name).delete()
四、修改一个对象
(1)获取对象,然后修改,最后save()
person = Person_Tbl.objects.filter(name=name)
cur_person = person[0]
cur_person.name = name
cur_person.height = 170
cur_person.save()
person = Person_Tbl.objects.get(name=name)
person.name = name
person.height = 170
person.save()
(2)使用update()
person = Person_Tbl.objects.filter(name=name).update(name=name, height=170)
来源:简书
相关文章推荐
- django 学习-7 模型数据操作
- Python手工加载Django的实际操作的四部分详解
- 【django 学习笔记】09-数据模型高级进阶
- ThinkPHP学习笔记(五)使用模型操作数据库之CURD
- Spark Hadoop集群部署与Spark操作HDFS运行详解---Spark学习笔记10
- ASIO官方例子学习1.为服务器异步操作定制内存分配模型代码分析(allocation/server.cpp)
- 【嵌入式Linux学习七步曲之第四篇 Linux内核移植】详解Linux2.6内核中基于platform机制的驱动模型
- django学习之三:model模型创建
- Django学习总结之五模型
- Django学习总结之五-模型
- Django模型-数据库操作
- MFC学习笔记之:列表框(ListBox) 常用的的操作详解
- Sharepoint学习笔记—ECMAScript对象模型系列-- 5、使用ECMA操作列表对象(list)
- JavaScript学习之三JavaScript浏览器对象模型详解----document对象
- Python django学习之:model (与数据库操作)
- 【django 学习笔记】04-模型
- JavaScript学习之一JavaScript浏览器对象模型详解---window对象(上)
- DJANGO基础学习之数据库操作
- django学习记录-django-1.5中简单地自定义自己的用户模型
- oracle理论学习详解及各种简单操作例子(菜鸟必备)