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实现划词翻译
Apr 23 Python
python抽象基类用法实例分析
Jun 04 Python
python实现字典(dict)和字符串(string)的相互转换方法
Mar 01 Python
Python Web编程之WSGI协议简介
Jul 18 Python
Python中对数组集进行按行打乱shuffle的方法
Nov 08 Python
python用插值法绘制平滑曲线
Feb 19 Python
python判断所输入的任意一个正整数是否为素数的两种方法
Jun 27 Python
python文件处理fileinput使用方法详解
Jan 02 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
Oct 14 Python
Python读写锁实现实现代码解析
Nov 28 Python
python xlwt模块的使用解析
Apr 13 Python
Python实战之实现康威生命游戏
Apr 26 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
CodeIgniter php mvc框架 中国网站
2008/05/26 PHP
php csv操作类代码
2009/12/14 PHP
PHP写UltraEdit插件脚本实现方法
2011/12/26 PHP
php基于GD库画五星红旗的方法
2015/02/24 PHP
php限制上传文件类型并保存上传文件的方法
2015/03/13 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
jquery ajaxfileupload异步上传插件使用详解
2017/02/08 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
js获取文件里面的所有文件名(实例)
2017/10/17 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
vue使用axios上传文件(FormData)的方法
2019/04/14 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
书单|人生苦短,你还不用python!
2017/12/29 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
Pycharm小白级简单使用教程
2020/01/08 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
丝芙兰香港官网:Sephora香港
2018/03/13 全球购物
优秀毕业生自荐信范文
2014/01/01 职场文书
保护环境的建议书
2014/03/12 职场文书
铁路安全事故反思
2014/04/26 职场文书
部门年终奖分配方案
2014/05/07 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
党员反四风学习心得体会
2016/01/22 职场文书