最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • django如何删除数据库数据

    正文概述    2020-10-18   492

    django如何删除数据库数据

    在用django操作数据库之前,我们先需要知道什么是orm。

    什么是ORM?  

    ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查等操作。

    简而言之,就是将数据库的一张表当作一个类,数据库中的每一条记录当作一个对象。在Django中定义一个类,就是在数据库中创建一张表格。在Django中实例化一个类的对象,就是在数据库中增加了一条记录。在Django中删除一个对象,就是在数据库中删除了一条记录。在DJango中更改一个对象的属性,就是在数据库中修改一条记录的值。在django中遍历查询对象的属性值,就是在数据库中查询记录的值。

    下面是几条django的views视图函数中的命令语句。

    一,增(create,save)

    from app01.models import *    #create方式一:   Author.objects.create(name='Alvin')
        #create方式二:   Author.objects.create(**{"name":"alex"})
        #save方式一:     author=Author(name="alvin") author.save()    #save方式二:     author=Author()
                        author.name="alvin"
                        author.save()

    注意,增加时create+save两个组合,create是增的动作,save是加的动作,缺一个都不中。

    二,删(delete)

    >>> Book.objects.filter(id=1).delete()
    (3, {'app01.Book_authors': 2, 'app01.Book': 1})

    如果是多对多的关系: remove()和clear()方法:

    #正向book = models.Book.objects.filter(id=1)#删除第三张表中和女孩1关联的所有关联信息book.author.clear()        #清空与book中id=1 关联的所有数据book.author.remove(2)  #可以为idbook.author.remove(*[1,2,3,4])     #可以为列表,前面加*#反向author = models.Author.objects.filter(id=1)
    author.book_set.clear() #清空与boy中id=1 关联的所有数据

     三,改(update和save)

    #---------------- update方法直接设定对应属性----------------
       models.Book.objects.filter(id=3).update(title="php")    ##sql:
       ##UPDATE "app01_book" SET "title" = 'PHP' WHERE "app01_book"."id" = 3; args=('PHP', 3)
    
    #--------------- save方法会将所有属性重新设定一遍,效率低-----------
       obj=models.Book.objects.filter(id=3)[0]
       obj.title="Python"
       obj.save()# SELECT "app01_book"."id", "app01_book"."title", "app01_book"."price", # "app01_book"."color", 
       "app01_book"."page_num", # "app01_book"."publisher_id" FROM "app01_book" WHERE "app01_book"."id" = 3 LIMIT 1; #
        # UPDATE "app01_book" SET "title" = 'Python', "price" = 3333, "color" = 'red', "page_num" = 556,# 
        "publisher_id" = 1 WHERE "app01_book"."id" = 3;

    四,查(update和save)

    # 查询相关API:#  <1>filter(**kwargs):      它包含了与所给筛选条件相匹配的对象
    # <2>all():    查询所有结果
    #  <3>get(**kwargs):返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会
    抛出错误。#-----------下面的方法都是对查询的结果再进行处理:比如 objects.filter.values()--------
    #  <4>values(*field):   返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列 model的实例化对象,
    而是一个可迭代的字典序列
    #  <5>exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象
    #  <6>order_by(*field):  对查询结果排序
    #  <7>reverse(): 对查询结果反向排序
    #  <8>distinct(): 从返回结果中剔除重复纪录
    #  <9>values_list(*field):   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
    #  <10>count():   返回数据库中匹配查询(QuerySet)的对象数量。
    # <11>first():    返回第一条记录
    # <12>last():  返回最后一条记录
    #  <13>exists(): 如果QuerySet包含数据,就返回True,否则返回False。

    起源地 » django如何删除数据库数据

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元