zoukankan      html  css  js  c++  java
  • 10.Django数据库操作(增删改)

    插入数据

      命令: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/

  • 相关阅读:
    显而易见的python
    GitHub 使用教程图文详解
    linux下搭建hexo环境
    linux 删除软链接
    Django2.1入门教程
    windows下安装PyQt4
    python3 Flask安装
    学习之源
    白话C++系列教程
    面试笔试试题精选
  • 原文地址:https://www.cnblogs.com/413xiaol/p/6503480.html
Copyright © 2011-2022 走看看