Django数据库操作实战:增删改查完整指南

Mason
Mason
发布时间:2026-10-13 | 2人浏览过
原创

本文详细讲解Django框架中数据库的增删改查操作。涵盖模型定义、三种数据创建方式(create、save、字典解包)、两种数据更新方法(update、对象保存)以及数据删除。重点解析QuerySet与字典/元组的数据获取差异,并结合视图函数与HTML模板展示如何在前端渲染不同格式的数据结果,提供完整的代码实例供参考。

在Django项目中,首先需要定义数据库表结构。通过继承models.Model类来创建模型,系统会自动生成主键ID列。例如,定义Business模型时,需指定caption和code字段为CharField类型,并设置最大长度限制,以此确立数据表的基本架构。

class Business(models.Model):
 #自动创建ID列
 caption = models.CharField(max_length=32)
 code = models.CharField(max_length=32)

数据增加操作

第一种实现方式

models.Business.objects.create(caption='市场部',code='123') 

第二种实现方式

obj = models.UserInfo(caption='市场部',code='123')
obj.save()

第三种实现方式

dic = {'caption':'市场部','code':'123'}
models.Business.objects.create(**dic)

数据删除操作

models.Business.objects.filter(id=1).delete()

具体的查询方法将在后续章节详细展开

数据更改操作

第一种更新方式

models.Business.objects.filter(id=1).update(code='hello')

第二种更新方式

obj = models.Business.objects.get(id=1)
obj.code = 'hello'
obj.save()

具体的查询方法将在后续章节详细展开

数据查询操作

获取全部数据记录

v1 = models.Business.objects.all()  #QuerySet类型,内部元素都是对象

获取指定条件的数据记录

v2 = models.Business.objects.all().values("id","caption") #QuerSet类型,内部元素都是字典
v3 = models.Business.objects.all().values_list('id','caption') #QuerySet类型,内部元素都是元组
v4 = models.Business.objects.get(id=1) #获取一个队象,如果不存在就报错
v5 = models.Business.objects.filter(id=1) #QuerySet类型,内部元素是对象,id__gt=1获取所有id>1的数据,id__lt=10,获取所有id<10的数据
v6 = models.Business.objects.filter(id=1).first() #返回对象或者None

实际应用场景示例

视图函数business的定义

def business(request):
 v1 = models.Business.objects.all()
 v2 = models.Business.objects.all().values("id","caption")
 v3 = models.Business.objects.all().values_list('id','caption')
 return render(request,"business.html",{"v1":v1,"v2":v2,"v3":v3})

 url(r'^business$',views.business)

前端模板business.html的代码结构

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
</head>
<body>
 <ul>
  <h1>ALL</h1>
  {% for row in v1 %}
   <li>{{row.id}}-{{row.caption}}-{{row.code}}</li>
  {% endfor %}
 </ul>
 <ul>
  <h1>all.values</h1>
  {% for row in v2 %}
   <li>{{row.id}}-{{row.caption}}</li>
  {% endfor %}
 </ul>
 <ul>
  <h1>all.values_list</h1>
  {% for row in v3 %}
   <li>{{row.0}}-{{row.1}}</li>
  {% endfor %}
 </ul> 
</body>
</html>

以上内容为Django数据库增删改查操作的完整实例分享,旨在提供实用的代码参考,欢迎读者支持并关注更多技术内容。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表