Django数据库操作实战:增删改查完整指南
本文详细讲解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数据库增删改查操作的完整实例分享,旨在提供实用的代码参考,欢迎读者支持并关注更多技术内容。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













