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

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

本文详细讲解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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。