django的model操作汇整详解


Posted in Python onJuly 26, 2019

单表操作

增加数据

auther_obj = {"auther_name":"崔皓然","auther_age":1}
models.auther.objects.create(
 **auther_obj
)
models.auther.objects.create(
 auther_name="周雍博",
 auther_age=4
)
obj = models.auther(
 auther_name="崔洪艳",
 auther_age=29
)
obj.save()
obj = models.auther(
 auther_name = "王仙枝",
 auther_age = "50"
)
obj.save()

删除数据

models.auther.objects.filter(auther_name="崔洪艳")[0].delete()

一对多操作

增加数据

a_obj = models.auther.objects.get(id=1)
 
 
models.book.objects.create(
 book_name = "python课程1",
 book_price = 12,
 book_auther = a_obj
)
a_obj = models.auther.objects.get(id=5)
 
models.book.objects.create(
 book_name = "java课程1",
 book_price = 13,
 book_auther_id = a_obj.id
)
a_obj = models.auther.objects.get(id=2)
 
book_dict = {
 "book_name":"python课程2",
 "book_price":14,
 "book_auther_id":a_obj.id
}
 
obj = models.book.objects.create(
 **book_dict
)
a_obj = models.auther.objects.get(id=4)
 
book_dict = {
 "book_name":"java课程2",
 "book_price":15,
 "book_auther":a_obj
}
 
models.book.objects.create(
 **book_dict
)

一对多正向查询

# 查询id为2的书的所有作者的信息
obj = models.book.objects.get(id=2)
 
print(obj.book_auther.auther_name)
print(obj.book_auther.auther_age)
 
obj = models.book.objects.filter(id=2).values("book_name","book_price","book_auther__id","book_auther__auther_name","book_auther__auther_age")
 
print(obj)
# 查询id为2的作者的出版的书
 
obj = models.book.objects.filter(book_auther_id=2).values("book_name","book_price","book_auther__id","book_auther__auther_name","book_auther__auther_age")
print(obj)
 
 
obj = models.book.objects.get(book_auther_id=2)
print(obj.book_auther.auther_age)
print(obj.book_auther.auther_name)
print(obj.book_name)

一对多反向查询

# 查看出版社出版的书
 
obj = models.auther.objects.filter(id=2).values("auther_name","auther_age","book__book_name")
print(obj)
 
obj = models.auther.objects.get(id=2).book_set.values("book_name","book_price","book_auther__id","book_auther__auther_name","book_auther__auther_age")
print(obj)

多对多操作

增加数据

b1 = models.book.objects.get(id=1)
b2 = models.book.objects.get(id=2)
b4 = models.book.objects.get(id=4)
b5 = models.book.objects.get(id=5)
models.publish.objects.get(id=1).publish_book.add(
 b1,b2
)
book_list = [b1,b2]
 
models.publish.objects.get(id=2).publish_book.add(
 *book_list
)

更新数据

book_list = [b1,b2,b4,b5]
models.publish.objects.get(id=1).publish_book.set(book_list)

移除数据

models.publish.objects.get(id=1).publish_book.remove(b1)
 
book_list = [b2, ]
 
models.publish.objects.get(id=1).publish_book.remove(*book_list)

正向查询

obj = models.publish.objects.get(id=1).publish_book.values("book_name","publish__publish_name")
print(obj)
 
obj = models.publish.objects.filter(id=1).values("publish_name","publish_book__book_name")
print(obj)

反向添加数据

p1 = models.publish.objects.get(id=1)
p2 = models.publish.objects.get(id=2)
p3 = models.publish.objects.get(id=3)
b1.publish_set.add(p1,p2,p3)

反向删除数据

b1.publish_set.remove(p1)

反向更新数据,把remove替换为set就可以了

反向查询

obj = models.book.objects.get(id=1).publish_set.values("publish_name","publish_book__book_name")

model中多表关系和参数 

django的model操作汇整详解

django的model操作汇整详解

django的model操作汇整详解

多对多

django的model操作汇整详解

django的model操作汇整详解

django的model操作汇整详解

一对一

django的model操作汇整详解

model操作

django的model操作汇整详解

django的model操作汇整详解

django的model操作汇整详解

django的model操作汇整详解django的model操作汇整详解

django的model操作汇整详解

django的model操作汇整详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基于Tkinter库实现简单文本编辑器实例
May 05 Python
Python Socket编程详细介绍
Mar 23 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
详解Python开发中如何使用Hook技巧
Nov 01 Python
Python第三方库face_recognition在windows上的安装过程
May 03 Python
python查看文件大小和文件夹内容的方法
Jul 08 Python
python用quad、dblquad实现一维二维积分的实例详解
Nov 20 Python
解决Python列表字符不区分大小写的问题
Dec 19 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
Apr 27 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 Python
python 利用jieba.analyse进行 关键词提取
Dec 17 Python
python实现文件+参数发送request的实例代码
Jan 05 Python
django的csrf实现过程详解
Jul 26 #Python
详解Python 4.0 预计推出的新功能
Jul 26 #Python
python mysql断开重连的实现方法
Jul 26 #Python
seek引发的python文件读写的问题及解决
Jul 26 #Python
python经典趣味24点游戏程序设计
Jul 26 #Python
对django后台admin下拉框进行过滤的实例
Jul 26 #Python
python函数的万能参数传参详解
Jul 26 #Python
You might like
2020年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
PHP flock 文件锁详细介绍
2012/12/29 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
2016/03/25 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
JavaScript修改css样式style动态改变元素样式
2013/12/16 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
AngularJS监听路由变化的方法
2017/03/07 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
python实现ip查询示例
2014/03/26 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
答题辅助python代码实现
2018/01/16 Python
Python学习小技巧总结
2018/06/10 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
Python使用itchat 功能分析微信好友性别和位置
2019/08/05 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
Python hashlib模块加密过程解析
2019/11/05 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
Python高并发和多线程有什么关系
2020/11/14 Python
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
质检部部长职责
2013/12/16 职场文书
导游的职业规划书范文
2013/12/27 职场文书
观看信仰心得体会
2014/09/04 职场文书
复兴之路观后感
2015/06/02 职场文书
国庆节主题班会
2015/08/15 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
vue实现简易音乐播放器
2022/08/14 Vue.js