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中的二叉树查找算法模块使用指南
Jul 04 Python
用TensorFlow实现多类支持向量机的示例代码
Apr 28 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
Jan 05 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
树莓派实现移动拍照
Jun 22 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
python爬虫-模拟微博登录功能
Sep 12 Python
查看已安装tensorflow版本的方法示例
Apr 19 Python
python上selenium的弹框操作实现
Jul 13 Python
基于Python组装jmx并调用JMeter实现压力测试
Nov 03 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
Dec 14 Python
python字符串的多行输出的实例详解
Jun 08 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
我的论坛源代码(七)
2006/10/09 PHP
用PHP控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
PHP学习笔记(一) 简单了解PHP
2014/08/04 PHP
利用PHP如何实现Socket服务器
2015/09/23 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
vue-resourse将json数据输出实例
2017/03/08 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
2017/03/30 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
javascript合并两个数组最简单的实现方法
2019/09/14 Javascript
Python字符串处理函数简明总结
2015/04/13 Python
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
Django内容增加富文本功能的实例
2017/10/17 Python
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
Python Unittest根据不同测试环境跳过用例的方法
2018/12/16 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
Django中使用极验Geetest滑动验证码过程解析
2019/07/31 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
使用python远程操作linux过程解析
2019/12/04 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
python requests.get带header
2020/05/05 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
国际象棋商店:The Chess Store
2018/07/09 全球购物
如何处理简单的PHP错误
2015/10/14 面试题
什么是SCM(软件配置管理)
2014/08/16 面试题
2014领导班子专题民主生活会对照检查材料思想汇报
2014/09/23 职场文书
领导班子三严三实心得体会
2014/10/13 职场文书
2015年教师新年寄语
2014/12/08 职场文书
继承公证书格式
2015/01/26 职场文书
学习经验交流会策划书
2015/11/02 职场文书
PO模式在selenium自动化测试框架的优势
2022/03/20 Python