插入数据

  命令:create 或者 save

  create用法:ModelName.objects.create(itemName="itemValue")

  save用法:modelName = ModelName()

        modelName.itemName = itemValue

        modelName.save()

  说明:create是objecet管理器(model默认管理器)的方法,save是model对象的方法

例子:

1.给Author表插入一条记录,其中name的值为 测试name(普通单表插入)

  方法一:Author.objects.create(name="测试name")

  方法二:author = Author()

      author.name = "测试name"
      author.save()

  说明:分别是create和save的演示

2.给AuthorDetail表插入一条记录,记录Author表中id为1的作者细节信息(1对1关系) 

# sex = models.BooleanField(max_length=1, choices=((0, '男'), (1, '女'),))
# email = models.EmailField()
# address = models.CharField(max_length=50)
# birthday = models.DateField()
# author = models.OneToOneField(Author)

  方法一:AuthorDetail.objects.create(

        sex=False,

        email="admin@admin.com",

        address="中国",

        birthday="1988-1-1",

        author_id=1)

  方法二:Author.objects.create(name="测试name")

      author = Author()
      author.name = "测试name"
      author.save()

      AuthorDetail.objects.create(

        sex=False,

        email="admin@admin.com",

        address="中国",

        birthday="1988-1-1",

        author=author)

  说明:对于这种1对1或者1对多的插入,可以有两种方式,第一种就是方法一中,直接用author_id=1这种,另一种是直接传递个对象,像方法二中那样,直接传autho=author框架会自己去找到对应的id存入到数据库中,在这个例子中,是使用先创建author在把这个author保存,然后传递给authorDetail的,在实际中,该author对象也有可能是直接从数据库查出来的,只要是数据库里确实有的author对象就可以

3.插入一条Book信息(多对多)

# title = models.CharField(max_length=100)
# authors = models.ManyToManyField(Author)
# publisher = models.ForeignKey(Publisher)
# publication_date = models.DateField()

  步骤1:插入Book表(写入Book中所有非Many-to-Many的字段)

      book = Book()
      book.title ="python学习"
      book.publisher_id ="1"
      book.publication_date ="2000-1-1"
      book.save()

  步骤2:插入Book表和Author表的关联表(处理Many-to-Many字段)

      book.authors.add(Author.objects.get(id=1))

修改数据

  命令:update 或者 save

例子:讲Author表中id为1的记录的name改为xiaol

  save方法:

    author = Author.objects.get(id=1)
    author.name="xiaol"
    author.save()

  update方法:

    Author.objects.filter(id=1).update(name="xiaol")

删除数据

  命令:delete

  用法:ModelName.objects.filter(param).delete()

  说明:默认下delete是级联删除

例子:删除Author表中id为1的数据

  Author.objects.filter(id=1).delete()

官方文档:https://docs.djangoproject.com/en/1.9/ref/models/querysets/

10.Django数据库操作(增删改)的更多相关文章

  1. Django数据库操作(增删改查)

    Django数据库操作(增删改查) 创建数据库中的一个表 class Business(models.Model): #自动创建ID列 caption = models.CharField(max_l ...

  2. django数据库操作-增删改查-多对多关系以及一对多(外键)关系

    一.一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model代码: class Person(models.Model); name = models.CharField('作者姓名' ...

  3. 转: django数据库操作-增删改查-多对多关系以及一对多(外键)关系

    原文链接:http://blog.csdn.net/u010271717/article/details/22044415 一.一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model ...

  4. Yii数据库操作增删改查-[增加\查询\更新\删除 AR模式]

    在Yii的开发中常常需要去使用Yii的增删改查方法,这些方法又可以多次变化和组合,带来全方位的实现对数据库的处理,下面对这些方法做一些简单的整理和梳理,有遗漏或是BUG,敬请指出.灰常感谢!!! 一. ...

  5. Android下数据库操作——增删改查

    Android下数据库第一种方式增删改查     1.创建一个帮助类的对象,调用getReadableDatabase方法,返回一个SqliteDatebase对象     2.使用SqliteDat ...

  6. SpringBoot 数据库操作 增删改查

    1.pom添加依赖 <!--数据库相关配置--> <dependency> <groupId>org.springframework.boot</groupI ...

  7. django数据库的增删改查

    正常启动服务安装数据库cmd命令:python manage.py makemigrations 创建用户 在pxm里面会有一个py文件..这就是生成了表结构cmd命令:python manage.p ...

  8. spring框架学习之--数据库操作增删改查

    基于spring的NamedParameterJdbcTemplate操作数据库 首先在 resources 文件夹下添加数据库配置文件jdbc.properties 配置常用的数据库信息 consu ...

  9. Yii2.0数据库操作增删改查详解

    1.简单查询: one(): 根据查询结果返回查询的第一条记录. all(): 根据查询结果返回所有记录. count(): 返回记录的数量. sum(): 返回指定列的总数. average():  ...

随机推荐

  1. Java三大器之过滤器(Filter)的工作原理和代码演示

    一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp,Servlet, 静 ...

  2. 【HTML 元素】标记文字

    1.用基本的文字元素标记内容 先看显示效果: 对应HTML代码: <!DOCTYPE html> <html lang="en"> <head> ...

  3. hdu 4865 Peter&#39;s Hobby (隐马尔可夫模型 dp)

    Peter's Hobby Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  4. 转MQTT--mosquitto服务器系统内容主题

    MQTT客户端可以通过订阅位于$SYS层次下的主题来查看mosquitto服务器的状态信息.标记为Static的主题对于每一次订阅只发布一次.其它所有主题每隔sys_interval(在mosquit ...

  5. Python Numpy 数组的初始化和基本操作

    一.基础: Numpy的主要数据类型是ndarray,即多维数组.它有以下几个属性: ndarray.ndim:数组的维数 ndarray.shape:数组每一维的大小 ndarray.size:数组 ...

  6. SpringCloud系列二:硬编码实现简单的服务提供者与服务消费者

    从本文开始,以一个电影售票系统为例讲解Spring Cloud 1. 版本 jdk:1.8 SpringBoot:2.0.0.RELEASE SpringCloud:Finchley.M8 2. 系统 ...

  7. VM虚拟机内ubuntu无法连接到网络

    VM虚拟机内ubuntu无法连接到网络 解决:编辑网络,将网路都删除掉.又一次加入网络桥接和NAT链接. .又一次连接就可以,查看一下ip地址. 方法2: 虚拟机中新装ubuntu 编辑虚拟网络,先恢 ...

  8. iOS iPhoneX/iPhoneXS/iPhoneXR/iPhoneXS Max系列适配

    以前异性屏只有一款iPhoneX,所以在适配的时候直接判断高度是否等于812即可判断是否是iPhoneX #define IS_IPHONE_X (IS_IPHONE && SCREE ...

  9. 隐藏VS2013的反馈、通知和登录按钮

    Visual Studio 2013的右上角有反馈.通知.登录.快速启动等按钮,在VS2013中没有选项可以设置为隐藏. 打开注册表(开始 -> 运行 -> regedit),展开到以下路 ...

  10. two sum, three sum和four sum问题

    1. two sum问题 给定一组序列:[-4 -6 5 1 2 3 -1 7],然后找出其中和为target的一对数 简单做法:两层循环遍历,时间复杂度为n^2 升级版:对给定的序列建立一个hash ...