【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

相关文章

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

C# 读写ini文件操作实现

《C#读写ini文件操作实现》本文主要介绍了C#读写ini文件操作实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、INI文件结构二、读取INI文件中的数据在C#应用程序中,常将INI文件作为配置文件,用于存储应用程序的

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1