Django中ORM之操作表记录
添加表记录
添加普通字段
#方法一
book_obj = Book(title='book7',publishDate='2011-05-02',price=200,publish_id=1)
book_obj.save() #方式二
Book.objects.create(title='book8',publishDate='2014-05-02',price=200,publish_id=1)
添加外键字段
#方法一
publish_obj = Publish.objects.get(nid=1)
Book.objects.create(title='book7',publishDate='2011-05-02',price=200,publish=publish_obj) #方法二
Book.objects.create(title='book8', publishDate='2014-05-02', price=200, publish_id=1)
多对多字段
#多对多字段
book_obj = Book.objects.create(title='book9', publishDate='2015-05-02', price=200, publish_id=1)
author_1 = Author.objects.create(name='a1',age=20)
author_2 = Author.objects.create(name='a2',age=23)
book_obj.authors.add(author_1,author_2) #将某个特定的model对象添加到被关联对象集合中
book_obj.authors.create() #创建并保存一个新对象 #解除关系
book_obj.authors.remove() #将某个特定的对象从被关联对象集合中去除
book_obj.authors.clear() #清空被关联对象集合
book_obj.authors.set(author_1) #先清空,再设置 #对于所有类型的关联字段,add()、create()、remove()和clear(),set()都会马上更新数据库。在关联的任何一端,都不需要再调用save()方法
修改表记录
update是QuerySet对象的方法,get返回的是一个model对象,没有update方法。update()方法对于任何QuerySet均有效,这意味着你可以同时更新多条记录,update()方法会返回一个整型数值,表示受影响的记录条数。
#方式一
author_obj = Author.objects.get(id=5)
author_obj.name = 'jane'
author_obj.save()
#方式二
Author.objects.filter(id=5).update(name='jane')
删除表记录
删除方法就是delete(),它运行时立即删除对象而不返回任何值
你也可以一次性删除多个对象,每个QuerySet都有一个delete方法,它一次性删除QuerySet中所有的对象。
无论在什么情况下,QuerySet中的delete()方法都只使用一条SQL语句一次性删除所有对象,而并不是删除每个对象。如果你想使用在model中自定义的delete()方法,就要自行调用delete方法
Book.objects.filter(publishDate__year='').delete()
Django中ORM之操作表记录的更多相关文章
- Django中ORM之查询表记录
查询相关API from django.db import models # Create your models here. class Book(models.Model): title = mo ...
- Django中ORM介绍和字段及其参数
ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...
- Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM)
Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...
- 6月20日 Django中ORM介绍和字段、字段参数、相关操作
一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...
- Django中ORM实际应用
1. Django中ORM的使用 1. 手动新建一个数据库 2. 告诉Django连接哪个数据库 settings.py里面配置数据库连接信息: # 数据库相关的配置项 DATABASES = { ' ...
- Django 中ORM 的使用
一:Django 中 orm 的使用 1:手动新建一个数据库 2 :告诉Django连接哪个数据库 settings.py里配置数据库连接信息: #数据库相关的配置项 DATABASES ={ 'de ...
- Django中ORM的聚合索引
Django中ORM的聚合索引 在Django中,聚合函数是通过aggregate方法实现的,aggregate方法返回的结果是一个字典 在使用时需要先导入模块from django.db.mod ...
- 关于Django中ORM数据库迁移的配置
Django中ORM数据库迁移配置 1,若想将模型转为mysql数据库中的表,需要在settings中配置: DATABASES = { 'default': { 'ENGINE': 'django. ...
- Django中ORM的使用
Django中ORM的使用 ORM orm(object-relation-mapping)对象关系映射,即用对象来表示关系数据库中的表: 类 --> 表, 对象-->一行数据 对象的属性 ...
随机推荐
- python爬网页中文乱码问题
再用python爬取网页时,用模拟浏览器登陆,得到的中文字符出现乱码,该怎么解决呢? url = “http://newhouse.hfhouse.com/” req = urllib2.Reques ...
- asyncio 自动跳出长时间堵塞的 task
https://www.cnblogs.com/ywhyme/p/10660411.html 的升级版 可以知道当前是卡在哪一个 task 甚至是多少行 import asyncio import o ...
- echarts地图的基本使用配置
一.空气质量图 代码和配置如下: <template> <div class="box"> <div id="map">&l ...
- Jquery学习总结(5)——jQuery选择器
1. #id : 根据给定的ID匹配一个元素 <p id="myId">这是第一个p标签</p> <p id="not">这 ...
- BA-siemens-ppm模块调试
第一部分:现场接线 1. 拨码:朝向数字那一端为0,远离数字那一端为1,PPM的地址设定方法就是将拨码器拨为跟系统架构表一样的数字,比如一个1U32的编号为77020,那么它的编号就是20,将4和16 ...
- [Azure][Windows Azure介绍]C1了解Windows Azure
本章介绍了Windows Azure平台,并介绍了该平台提供的不同的服务和解决方案.本章主要针对还不熟悉什么Windows Azure是和它能做什么的读者.如果你已经熟悉了Windows Azure, ...
- HDU 3886
一开始又往打表想了....不过,打表确实不好处理,转DFS. DFS有几个要注意的问题,1.对于枚举以零开始的数.我纠结了很久,最终学习别人的方法,设一个BOOL,并且假设最高一位有零,很方便.2.当 ...
- tomcat内存大小设置
tomcat内存大小设置 如果安装为windows服务,需要进行内存设置的时候,选择configure...界面, 在Java Tab页面内可以进行内存参数的设置. 学习了:http://elf884 ...
- Hive不同文件的读取与序列化
Hive不同文件的读取对照 stored as textfile 直接查看hdfs hadoop fs -text hive> create table test_txt(name string ...
- Android中的WiFi P2P
Android中的WiFi P2P可以同意一定范围内的设备通过Wifi直接互连而不必通过热点或互联网. 使用WiFi P2P须要Android API Level >= 14才干够,并且不要忘记 ...