最浅显易懂的Django系列教程(19)-增删改查操作

Django ORM 实战指南
本文详细介绍Django ORM框架下模型操作,包括模型创建、数据查询、更新与删除,以及数据排序技巧。深入理解如何利用Python对象进行数据库交互,提升开发效率。

模型的操作:

ORM框架中,所有模型相关的操作,比如添加/删除等。其实都是映射到数据库中一条数据的操作。因此模型操作也就是数据库表中数据的操作。

添加一个模型到数据库中:

添加模型到数据库中。首先需要创建一个模型。创建模型的方式很简单,就跟创建普通的Python对象是一摸一样的。在创建完模型之后,需要调用模型的save方法,这样Django会自动的将这个模型转换成sql语句,然后存储到数据库中。示例代码如下:

class Book(models.Model):
    name = models.CharField(max_length=20,null=False)
    desc = models.CharField(max_length=100,name='description',db_column="description1")
    pub_date = models.DateTimeField(auto_now_add=True)

book = Book(name='三国演义',desc='三国英雄!')
book.save()

查找数据:

查找数据都是通过模型下的objects对象来实现的。

查找所有数据:

要查找Book这个模型对应的表下的所有数据。那么示例代码如下:

books = Book.objects.all()

以上将返回Book模型下的所有数据。

数据过滤:

在查找数据的时候,有时候需要对一些数据进行过滤。那么这时候需要调用objectsfilter方法。实例代码如下:

books = Book.objects.filter(name='三国演义')
> [<Book:三国演义>]

# 多个条件
books = Book.objects.filter(name='三国演义',desc='test')

调用filter,会将所有满足条件的模型对象都返回。

获取单个对象:

使用filter返回的是所有满足条件的结果集。有时候如果只需要返回第一个满足条件的对象。那么可以使用get方法。示例代码如下:

book = Book.objects.get(name='三国演义')
> <Book:三国演义>

当然,如果没有找到满足条件的对象,那么就会抛出一个异常。而filter在没有找到满足条件的数据的时候,是返回一个空的列表。

数据排序:

在之前的例子中,数据都是无序的。如果你想在查找数据的时候使用某个字段来进行排序,那么可以使用order_by方法来实现。示例代码如下:

books = Book.objects.order_by("pub_date")

以上代码在提取所有书籍的数据的时候,将会使用pub_date从小到大进行排序。如果想要进行倒序排序,那么可以在pub_date前面加一个负号。实例代码如下:

books = Book.objects.order_by("-pub_date")

修改数据:

在查找到数据后,便可以进行修改了。修改的方式非常简单,只需要将查找出来的对象的某个属性进行修改,然后再调用这个对象的save方法便可以进行修改。示例代码如下:

from datetime import datetime
book = Book.objects.get(name='三国演义')
book.pub_date = datetime.now()
book.save()

删除数据:

在查找到数据后,便可以进行删除了。删除数据非常简单,只需要调用这个对象的delete方法即可。实例代码如下:

book = Book.objects.get(name='三国演义')
book.delete()

看文章不过瘾?还有免费的视频教程,让你学起来更轻松Django零基础到项目实战

本门课程重实战,将基础知识拆解到项目里,让你在项目情境里学知识。 这样的学习方式能让你保持兴趣、充满动力,时刻知道学的东西能用在哪、能怎么用。 平时不明白的知识点,放在项目里去理解就恍然大悟了。   一、融汇贯通 本视频采用了前后端分离的开发模式,前端使用Vue.js+Element UI实现了Web页面的呈现,后端使用Python 的Django框架实现了数据访问的接口,前端通过Axios访问后端接口获得数据。在学习完本章节后,真正理解前后端的各自承担的工作。   二、贴近实战 本系列课程为练手项目实战:学生管理系统v4.0的开发,项目包含了如下几个内容:项目的总体介绍、基本功能的演示、Vuejs的初始化、Element UI的使用、在Django中实现针对数据的增删改查的接口、在Vuejs中实现前端增删改查的调用、实现文件的上传、实现表格的分页、实现导出数据到Excel、实现通过Excel导入数据、实现针对表格的批量化操作等等,所有的功能都通过演示完成、贴近了实战   三、课程亮点 在本案例中,大的亮点在于前后端做了分离,真正理解前后端的各自承担的工作。前端如何和后端交互   适合人群: 1、有Python语言基础、web前端基础,想要深入学习Python Web框架的朋友; 2、有Django基础,但是想学习企业级项目实战的朋友; 3、有MySQL数据库基础的朋友  
适合人群: 1、具有一定Python语言基础,有一定的web前端基础,想要深入学习Python Web框架的朋友; 2、学习完“跟着王进老师学开发Python篇”“跟着王进老师学Web前端开发”的朋友; 3、有Django基础,但是想学习企业级项目实战的朋友; 4、喜欢 Django 框架并想深入研究的朋友; 5、有一定的数据库基础   课程目标:本系列课程是从零基础开始并深入讲解Django终学会使用Django框架开发企业级的项目。课程知识点全网详细,项目实战贴近企业需求。本系列课程除了非常详细的讲解Django框架本身的知识点以外,还讲解了web开发中所需要用到的技术,学完本系列课程后,您将独立做出一个具有后台管理系统,并且前端非常优美实用的网站。   课程内容:在人工智能大行其道的时代,许多开发者对Python这门编程语言都比较熟悉。但是如何用它实现一个企业级别的项目,可能许多朋友还存在一些困惑。联科教育“跟着王进老师学Python”系列课程是专门针对想要从事Python Web开发的朋友而准备的,并且按照企业需求的标准定制的学习路线。学习路线中包含Python基础和进阶、Web前端、MySQL数据库、Flask和Django框架以及N多个企业真实项目。在学习完本系列中所有的课程后,从前端页面的实现,到后台代码的编写,再到数据库的管理,一人可以搞定一个公司网站的事情,掌握实现全栈开发,让你升职加薪不是梦! 本季课程介绍了Django中ORM模型,使用ORM模型的优势;Django中ORM模型常用的字段,ORM实现数据查询;Django后台管理等。所有应用均通过案例“在线图书商城”完成讲解和演示,完整项目,贯穿全部知识点,边学边练,帮助大家快速掌握知识,了解企业要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值