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/

  • 相关阅读:
    HTML DOM教程 14HTML DOM Document 对象
    HTML DOM教程 19HTML DOM Button 对象
    HTML DOM教程 22HTML DOM Form 对象
    HTML DOM教程 16HTML DOM Area 对象
    ubuntu 11.04 问题 小结
    VC6.0的 错误解决办法 小结
    boot.img的解包与打包
    shell里 截取字符串
    从零 使用vc
    Imagemagick 对图片 大小 和 格式的 调整
  • 原文地址:https://www.cnblogs.com/413xiaol/p/6503480.html
Copyright © 2011-2022 走看看