zoukankan      html  css  js  c++  java
  • ORM-添加/删除/修改表记录(编辑)

    一、添加表记录
    创建方式1:

    from django.shortcuts import render
    from homework1 import models
    def index(request):
        #book_obj自定义类对象
        book_obj = models.BookInfo(
            id=2,
            book_title='西游记',
            book_price=43.5,
            pub_date='2013-01-09',
            publisher='江苏人民出版社',
        )
        book_obj.save()
        print(book_obj)
        print(book_obj.id)
    

    创建方式2:

    def index(request):
        #new_book_obj为自定义对象,统称model对象
        new_book_obj = 
            models.BookInfo.objects.create(
            id=3,
            book_title='水浒传',
            book_price=88.3,
            pub_date='2003-01-16',
            publisher='机械工业出版社',
            )
        print(new_book_obj)
        print(new_book_obj.id)
    

    创建方式3:批量创建

    
    def index(request):
        obj_list = []
        for i in range(4,10):
            obj = models.BookInfo(
                id=i,
                book_title='哈利波特%s' % (i - 3),
                book_price=88.3,
                pub_date='2001-11-23',
                publisher='凤凰传媒出版社',
            )
            obj_list.append(obj)
        models.BookInfo.objects.bulk_create(obj_list)
    

    创建方式4:有就更行,没有就创建

        # 只能筛选出一条结果,并且如果是创建的话,需要在default中把所有表字段都填完全
        models.BookInfo.objects.update_or_create(
            # 查询条件
            book_title='卖火柴的小女孩',
            # 修改情况
            defaults={
                'book_price':666,
            }
        )
    

    二、删除表记录
    delete()方法的调用者可以是一个model对象,也可以是一个queryset

    models.BookInfo.objects.get(id=1).delete()   #可以
    
    models.BookInfo.objects.filter(book_title='昆虫记').delete()   #可以
    
    models.BookInfo.objects.delete()   #不可以
    
    models.BookInfo.objects.all().delete()   #删除全部,可以
    

    三、修改表数据
    方式1

    # update只能是querset类型才能调用,model对象不能直接调用更新方法,所以使用get方法获取对象的时候是不能update的。
    models.BookInfo.objects.filter(book_title__startswith="昆虫").update(book_price=120)
    

    方式2

    #这也是修改记录的一种方式,但是这种方式会将所有字段的数据都重新的赋值一遍(不是是不是需要更新的字段值),效率偏低,并且只能是model对象才能使用这种方式。
    book_obj = models.BookInfo.objects.get(id=2)
    book_obj.book_price = 100
    book_obj.save()
    
  • 相关阅读:
    237.Delete Node in a Linked List
    235.Lowest Common Ancestor of a Binary Search Tree
    234.Palindrome Linked List
    232.Implement Queue using Stacks
    231.Power of Two
    226.Invert Binary Tree
    225.Implement Stack using Queues
    Vue概述
    Git分布式版本控制工具
    分布式RPC框架Apache Dubbo
  • 原文地址:https://www.cnblogs.com/messi-mu/p/14254496.html
Copyright © 2011-2022 走看看