djanfo清空mysql,django如何删除数据库数据

本文详细介绍了Django中的ORM对象关系映射技术,包括如何使用ORM进行数据库的增删改查操作。通过create和save方法实现数据的增加,delete方法进行数据删除,update和save用于更新,以及多种查询方式如filter、exclude、order_by等。这些方法帮助开发者以面向对象的方式高效地操作数据库。
摘要由CSDN通过智能技术生成

2589725a967e5f832527092d59a5e0a5.png

在用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。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值