【Django 2021年最新版教程10】数据库修改更新update操作

2024-09-03 08:38

本文主要是介绍【Django 2021年最新版教程10】数据库修改更新update操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、新增多条测试数据

在“【Django 2021年最新版教程8】操作Mysql数据库 mysqlclient安装和使用”介绍了新增数据插入数据库的方法

二、修改操作

1. 修改views.py

import datetime
import jsonfrom django.core import serializers
from django.http import HttpResponse, JsonResponse
from django.shortcuts import render# Create your views here.
from userWeb.models import Userdef index(request):return render(request, './userWeb/index.html')# 加法页面
def add(request):return render(request, './userWeb/add.html')# 执行加法
def doadd(request):a = request.POST['a']b = request.POST['b']a = int(a)b = int(b)result = a + b# return HttpResponse(str(result))context = {}context['a'] = acontext['b'] = bcontext['result'] = resultreturn render(request, './userWeb/add_result.html', context)# 增加用户页面
def testUser(request):return render(request, './userWeb/testUser.html')# 执行增加用户
def testAddUser(request):name = request.POST['name']level = request.POST['level']createTime = datetime.datetime.now()user = User.objects.create(name=name, level=level, createTime=createTime)context = {}context['msg'] = '用户新增成功'context['数据库中的id'] = user.idreturn HttpResponse(str(context))# 数据库查询
def testQueryUser(request):total = User.objects.count() # 查询所有数据的总量total_condition = User.objects.filter(level=2).count() # 查询符合条件的数据总量all_user = User.objects.all() # 查询得到所有用户,使用 all() 方法来查询所有内容。可用索引下标取出模型类的对象。all_user_condition = User.objects.filter(level=2) # 查询得到指定条件的所有用户all_user_by_order = User.objects.filter(level=2).order_by('createTime') # 按创建时间从小到大排序,-createTime表示从大到小a_user_by_id = User.objects.filter(pk=3)  #pk=3 的意思是主键 primary key=3,相当于 id=3。因为 id 在 pycharm 里有特殊含义,是看内存地址的内置函数 id(),因此用 pk。just_show_some_fields = User.objects.filter(pk=3).values("pk", "name")  # 只显示id和name者两个字段print(just_show_some_fields)context = {}context['total'] = total # 查询所有数据的总量context['total_condition'] = total_condition # 查询符合条件的数据总量context['all_user'] = serializers.serialize("json", all_user) # 查询得到所有用户,使用 all() 方法来查询所有内容。可用索引下标取出模型类的对象。context['all_user_condition'] = serializers.serialize("json", all_user_condition) # 查询得到指定条件的所有用户context['all_user_by_order'] = serializers.serialize("json", all_user_by_order) # 按创建时间从小到大排序,-createTime表示从大到小context['a_user_by_id'] = serializers.serialize("json", a_user_by_id)  #pk=3 的意思是主键 primary key=3,相当于 id=3。因为 id 在 pycharm 里有特殊含义,是看内存地址的内置函数 id(),因此用 pk。#objects.values()返回django.db.models.query.QuerySet对象,需要将ValuesQuerySet对象需要先转换成listcontext['just_show_some_fields'] = json.dumps(list(just_show_some_fields))  # 只显示id和name者两个字段return JsonResponse(context)# 数据库查询
def testUpdateUser(request):# 查询出指定的用户userid=request.GET.get('userid', None)if userid is None:return HttpResponse("必须传递userid参数")# 修改前before_update = User.objects.filter(pk=userid)  #pk=3 的意思是主键 primary key=3,相当于 id=3。因为 id 在 pycharm 里有特殊含义,是看内存地址的内置函数 id(),因此用 pk。context = {}context['before_update'] = serializers.serialize("json", before_update)# 将该用户的level修改为10,返回值:整数,受影响的行数result = User.objects.filter(pk=userid).update(level=10)# 修改后after_update = User.objects.filter(pk=userid)  #pk=3 的意思是主键 primary key=3,相当于 id=3。因为 id 在 pycharm 里有特殊含义,是看内存地址的内置函数 id(),因此用 pk。context['after_update'] = serializers.serialize("json", after_update)context['the_number_of_rows_affected'] = resultreturn JsonResponse(context)

update返回值是受影响的行数,不是成功修改的行数。

2. 修改urls.py

3. 效果

 

三、还有一种更新方法

请参考https://www.runoob.com/django/django-orm-1.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

这篇关于【Django 2021年最新版教程10】数据库修改更新update操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132535

相关文章

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum