一、增加

create和save方法

实例:

1、增加一条作者记录

>>> from hello.models import *
>>> Author.objects.create(name='胡大海') >>> AuthorDetail.objects.create(sex=False,email='333@qq.com',address='北京XX',birthday='1988-1-2',author_id=1)

2、增加一条出版社记录

>>> pub=Publisher()
>>> pub.name='电子工业出版社'
>>> pub.address='成都华阳'
>>> pub.city='成都'
>>> pub.state_province='四川'
>>> pub.country='中国'
>>> pub.website='http://www.maiziedu.com'
>>> pub.save()

3、增加一条书籍记录

>>> Book.objects.create(title='python实战',publisher=pub,publication_date='2009-5-6')
>>> book=Book.objects.get(id=1)
>>> author=Author.objects.get(id=1)
>>> book.authors.add(author)

objects:model默认管理器。create是这个管理器里面的方法。

插入主外键关系的时候,可以用对象的方式,也可以直接以关联id的方式。

插入多对多关系的时候要分步操作。

save是model对象的方法。

二、修改

update和save方法

实例:

1、修改id为1的作者的名字为叶良辰,性别改为女

>>> Author.objects.filter(id=1).update(name='叶良辰')
>>> AuthorDetail.objects.filter(author__id=1).update(sex=True)

2、修改名为“电子工业出版社”的出版社的网址为 http://www.google.com,城市为重庆

Publisher.objects.filter(name='电子工业出版社').update(city='重庆',website='http://www.google.com')

update()方法是QuerySet对象的方法

三、查询(惰性机制)

实例:

1、查询所有的出版社信息

>>> Publisher.objects.all()

所谓惰性机制:Publisher.objects.all() 只是返回了一个QuerySet(查询结果集对象),并不会马上执行sql,而是当调用QuerySet的时候才执行。

四、删除

delete方法

实例:

1、删除id为1的书籍信息;

>>> Book.objects.filter(id=1).delete()

2、删除出版社城市为重庆的记录;

>>> Publisher.objects.filter(city='重庆').delete()

注意:django中的删除默认是级联删除。

delete方法也是QuerySet对象的方法

更多详见:https://docs.djangoproject.com/en/1.10/ref/models/querysets/


***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***

Django进阶Model篇004 - ORM常用操作的更多相关文章

  1. Django进阶Model篇005 - QuerySet常用的API

    django.db.models.query.QuerySet QuerySet特点: 1.可迭代 2.可切片 查询相关API 1.get(**kwargs):返回与所给的筛选条件相匹配的对象,返回结 ...

  2. Django进阶Model篇—数据库操作(ORM)

    一.数据库配置 django 默认支持sqlite.mysql.oracle.postgresql数据库,像db2和sqlserver之类的数据库需要第三方的支持,具体详见https://docs.d ...

  3. Django进阶Model篇008 - 使用原生sql

    注意:使用原生sql的方式主要目的是解决一些很复杂的sql不能用ORM的方式写出的问题. 一.extra:结果集修改器-一种提供额外查询参数的机制 二.执行原始sql并返回模型实例 三.直接执行自定义 ...

  4. Django进阶Model篇002 - 模型类的定义

    一.创建数据模型. 实例: 作者模型:一个作者有姓名. 作者详情模型:把作者的详情放到详情表,包含性别.email 地址和出生日期,作者详情模型与作者模型之间是一对一的关系(OneToOneField ...

  5. Django进阶Model篇001 - mysql 数据库的配置

    django 默认支持sqlite.mysql.oracle.postgresql数据库,像db2和sqlserver之类的数据库需要第三方的支持,具体详见: https://docs.djangop ...

  6. Django进阶Model篇007 - 聚集查询和分组查询

    接着前面的例子,举例聚集查询和分组查询例子如下: 1.查询人民邮电出版社出了多少本书 >>> Book.objects.filter(publisher__name='人民邮电出版社 ...

  7. Django进阶Model篇003 - 数据库同步技巧

    一.认识一个目录 目录名:migrations 作用:用来存放通过makemigrations命令生成的数据库脚本,不熟悉的情况下,里面生成的脚本不要轻易修改.app目录下必须要有migrations ...

  8. Django进阶Model篇006 - 多表关联查询

    接着前面的例子,举例多表查询实例如下: 1.查询作战的所有完整信息. >>> AuthorDetail.objects.values('sex','email','address', ...

  9. Django基础——Model篇(一)

    到目前为止,当程序涉及到数据库相关操作时,我们一般都会这么操作:    (1)创建数据库,设计表结构和字段    (2)使用MySQLdb来连接数据库,并编写数据访问层代码    (3)业务逻辑层去调 ...

随机推荐

  1. 第15章—数据库连接池(DBCP2)

    spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxia ...

  2. java配置文件properties,yml,一般文件

    JAVA编写配置文件的几种方式: JAVA配置文件,一般都放在resource目录下,无论是下面提到的properties.yml还是普通的txt等文件. 在打成jar包之后,只需要jar包程序就可运 ...

  3. Python 去掉文本中空行

    pandas 操作csv文件时,一直报错,排查后发现csv文本中存在很多“空行”: So 需要把空行全部去掉: def clearBlankLine(): file1 = open('text1.tx ...

  4. CNI bridge 插件实现代码分析

    对于每个CNI 插件在执行函数cmdAdd之前的操作是完全一样的,即从环境变量和标准输入内读取配置.这在http://www.cnblogs.com/YaoDD/p/6410725.html这篇博文里 ...

  5. AngularJs使用过程中,在ng-repeat中使用track by

    1.问题描述: 点击删除后:table中的被选中设备确实被删除了,但是data-table并没有重新加载出来, 查看js代码: 先对$scope.data_table进行了destroy(),然后重新 ...

  6. Java保留字和关键字

    Java的关键字:java的关键字对Java的编译器有着特殊的意义,它们表示一种数据类型或者程序的结构相关. Java的保留字:为Java预留的关键字,现在还没用到,但在新Java的版本升级中可能会用 ...

  7. Hadoop的eclipse1.1.2插件的安装和配置

    我的集群使用的hadoop版本是hadoop-1.1.2.对应的eclipse版本也是:hadoop-eclipse-plugin-1.1.2_20131021200005 (1)在eclipse的d ...

  8. Delphi 正则表达式语法(10): 选项

    Delphi 正则表达式语法(10): 选项 // preCaseLess: 不区分大小写, 相当于其他语言中的 i var   reg: TPerlRegEx; begin   reg := TPe ...

  9. knockout 学习使用笔记-----event绑定传参ko属性

    在绑定event的时候,需要传入ViewModal 本身的属性值(其实没必要,js直接能获取到,此处为测试相关参数的传递),如果不加(),会将绑定的function传进event(至于为嘛传了个fun ...

  10. PHP 权限管理

    login页面 <form action="loginchuli.php" method="post"> <div>用户名:<in ...