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 11 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
Nov 04 Python
Python随机生成手机号、数字的方法详解
Jul 21 Python
基于Python对象引用、可变性和垃圾回收详解
Aug 21 Python
轻松理解Python 中的 descriptor
Sep 15 Python
浅谈用Python实现一个大数据搜索引擎
Nov 28 Python
python 不以科学计数法输出的方法
Jul 16 Python
Python搭建Spark分布式集群环境
Jul 05 Python
Python中pymysql 模块的使用详解
Aug 12 Python
python解析多层json操作示例
Dec 30 Python
python小程序基于Jupyter实现天气查询的方法
Mar 27 Python
Pytorch数据拼接与拆分操作实现图解
Apr 30 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
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
两种方法基于jQuery实现IE浏览器兼容placeholder效果
2014/10/14 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
js实现unicode码字符串与utf8字节数据互转详解
2019/03/21 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
Python字符串和文件操作常用函数分析
2015/04/08 Python
python实现决策树
2017/12/21 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
详解Python 正则表达式模块
2018/11/05 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
通过Python实现一个简单的html页面
2020/05/16 Python
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
统计系教授推荐信
2014/02/28 职场文书
《散步》教学反思
2014/03/02 职场文书
海飞丝广告词
2014/03/20 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
2014年百日安全生产活动总结
2014/05/04 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python