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时间整形转标准格式的示例分享
Feb 14 Python
Python中最常用的操作列表的几种方法归纳
Apr 24 Python
Python 调用Java实例详解
Jun 02 Python
Python使用getpass库读取密码的示例
Oct 10 Python
Python获取二维矩阵每列最大值的方法
Apr 03 Python
分析python请求数据
Aug 19 Python
Django处理多用户类型的方法介绍
May 18 Python
Windows下Anaconda安装、换源与更新的方法
Apr 17 Python
Python中bisect的用法及示例详解
Jul 20 Python
Python3爬虫带上cookie的实例代码
Jul 28 Python
python中四舍五入的正确打开方式
Jan 18 Python
Pyecharts 中Geo函数常用参数的用法说明
Feb 01 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
php读取数据库信息的几种方法
2008/05/24 PHP
PHP中实现中文字符进制转换原理分析
2011/12/06 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
基于vue 实现token验证的实例代码
2017/12/14 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
2019/10/08 jQuery
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
Python的Flask框架中web表单的教程
2015/04/20 Python
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
2017/09/05 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
Django 连接sql server数据库的方法
2018/06/30 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
Django实现简单的分页功能
2021/02/22 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
什么是组件架构
2016/05/15 面试题
村委会贫困证明
2014/01/14 职场文书
大课间体育活动方案
2014/03/12 职场文书
劳动竞赛口号
2014/06/16 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
python绘制箱型图
2021/04/27 Python