10Django项目--用户管理系统--改

对应视频链接点击直达

10Django项目--用户管理系统--改

    • 对应视频链接点击直达
        • a,本质
        • b,修改(更新)
    • 页面相关
        • a,index页面新增操作按钮
        • b,修改(更新)页面
        • c,路由和函数
    • OVER,不会有人不会吧···不会的加Q1394006513
        • 结语

用户管理,简而言之就是用户的增删改查。

08项目点击下载,可直接运行(含数据库)
链接:https://pan.baidu.com/s/1z618tD56bLRGzEly_n_6pA?pwd=1314
提取码:1314

a,本质

更改,本质是一个先查询,再操作的,两步结合命令

b,修改(更新)

如果是多条数据符合条件,取第一条

try:
    # 查找age大于18且gender等于0的用户,并获取第一条记录
    user = Users.objects.get(age__gt=18, gender=0)
    # 更新该用户的name字段值为张三
    user.name = '张三'
    # 保存更新到数据库
    user.save()
    print("用户信息已更新")
except User.DoesNotExist:
    print("没有找到符合条件的用户")
except User.MultipleObjectsReturned:
    print("找到多个符合条件的用户,这通常不应该发生,请检查数据的一致性")

所有符合条件的数据全都更改(一般直接用这个)

# 查找age大于18且gender等于0的所有用户,并更新它们的name字段值为张三
Users.objects.filter(age__gt=18, gender=0).update(name='张三')

页面相关

a,index页面新增操作按钮

一般在修改数据的时候,习惯上单条数据的修改,定位一般使用数据的唯一id
user_index新增

<a class="btn btn-primary btn-xs" href="/wodeapp/user_edit/{{ User.data_id }}" ><i class="fa fa-folder"></i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
	<!-- 模拟修改请求 -->
</a>

然后找到数据,展现数据,根据管理员的操作修改,再保存
user_edit
请添加图片描述

b,修改(更新)页面
{% extends "public.html" %}
{% block title %}修改用户{% endblock %}

{% block content %}

        <!-- page content -->
        <div class="right_col" role="main">
          <div class="">
            <div class="page-title">
              <div class="title_left">
                <h3>Form Elements</h3>
              </div>

              <div class="title_right">
                <div class="col-md-5 col-sm-5 col-xs-12 form-group pull-right top_search">
                  <div class="input-group">
                    <input type="text" class="form-control" placeholder="Search for...">
                    <span class="input-group-btn">
                      <button class="btn btn-default" type="button">Go!</button>
                    </span>
                  </div>
                </div>
              </div>
            </div>
            <div class="clearfix"></div>
            <div class="row">
              <div class="col-md-12 col-sm-12 col-xs-12">
                <div class="x_panel">
                  <div class="x_title">
                    <h2>Form Design <small>different form elements</small></h2>
                    <ul class="nav navbar-right panel_toolbox">
                      <li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a>
                      </li>
                      <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-wrench"></i></a>
                        <ul class="dropdown-menu" role="menu">
                          <li><a href="#">Settings 1</a>
                          </li>
                          <li><a href="#">Settings 2</a>
                          </li>
                        </ul>
                      </li>
                      <li><a class="close-link"><i class="fa fa-close"></i></a>
                      </li>
                    </ul>
                    <div class="clearfix"></div>
                  </div>
                  <div class="x_content">
                    <br />

                    <form id="demo-form2" data-parsley-validate class="form-horizontal form-label-left" action="/wodeapp/user_eidt2/" method="post">


                      <div class="form-group">
                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="first-name"> 姓 名 </label>
                        <div class="col-md-6 col-sm-6 col-xs-12">
                          <input type="text" id="first-name" required="required" class="form-control col-md-7 col-xs-12" name="name" value="{{ data.name }}">
                        </div>
                      </div>
                      <div class="form-group">
                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="first-name"> 年 龄 </label>
                        <div class="col-md-6 col-sm-6 col-xs-12">
                          <input type="text" id="first-name" required="required" class="form-control col-md-7 col-xs-12" name="age"  value="{{ data.age }}">
                        </div>
                      </div>
                      <div class="form-group">
                        <label class="control-label col-md-3 col-sm-3 col-xs-12"> 性 别 </label>
                        <div class="col-md-6 col-sm-6 col-xs-12">
                          <div id="gender" class="btn-group" data-toggle="buttons">
                              {% if data.gender == 0 %}
                              <label class="btn btn-default active" data-toggle-class="btn-primary" data-toggle-passive-class="btn-default">
                                <input type="radio" name="gender" value=0 checked> &nbsp; &nbsp;&nbsp; &nbsp;
                              </label>
                              <label class="btn btn-default" data-toggle-class="btn-primary" data-toggle-passive-class="btn-default">
                                <input type="radio" name="gender" value=1> &nbsp;&nbsp;&nbsp; &nbsp;
                              </label>
                              {% elif data.gender == 1%}
                              <label class="btn btn-default" data-toggle-class="btn-primary" data-toggle-passive-class="btn-default">
                                <input type="radio" name="gender" value=0> &nbsp; &nbsp;&nbsp; &nbsp;
                              </label>
                              <label class="btn btn-default active" data-toggle-class="btn-primary" data-toggle-passive-class="btn-default">
                                <input type="radio" name="gender" value=1 checked> &nbsp;&nbsp;&nbsp; &nbsp;
                              </label>
                              {% endif %}
                          </div>
                        </div>
                      </div>


                      <div class="form-group">
                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="first-name" > 备 注 </label>
                        <div class="col-md-6 col-sm-6 col-xs-12">
                          <input type="text" id=""  class="form-control col-md-7 col-xs-12" name="beizhu" value="{{ data.beizhu }}" >
                        </div>
                      </div>
                    <div class="form-group">
                        <label class="control-label col-md-3 col-sm-3 col-xs-12">用户编号</label>
                        <div class="col-md-6 col-sm-6 col-xs-12">
                          <input  class="date-picker form-control col-md-7 col-xs-12" name="data_id" value="{{ data.data_id }}" readonly>
                        </div>
                      </div>

                      <div class="ln_solid"> </div>
                      {% csrf_token %}
                      <div class="ln_solid"></div>
                      <div class="form-group">
                        <div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
                            <button class="btn btn-primary" type="reset"> 重  填 </button>
                          <button type="submit" class="btn btn-success"> 提  交 </button>
                        </div>
                      </div>
                    </form>


                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>

{% endblock %}
c,路由和函数

我们可以理解成一个新的用户新增(ID和原来的一样)
urls

    # 用户更新
    path('user_edit/<int:data_id>/', views.user_edit, name='user_edit'),

    path('user_eidt2/', views.user_eidt2, name='user_eidt2'),

请添加图片描述
views

def user_eidt2(request):
    if request.method == 'POST':
        data_id = request.POST.get('data_id', None)
        print(data_id)
        Users.objects.filter(data_id=data_id).update(name=request.POST['name'], age=request.POST['age'], gender=request.POST['gender'], beizhu=request.POST['beizhu'])

        User_list = Users.objects.all()
        # print(User_list)
        # # 渲染显示
        return render(request, 'wodeapp/user_index.html', {'User_list': User_list, })

请添加图片描述
这样就行啦~

OK

OVER,不会有人不会吧···不会的加Q1394006513

结语

别的也没啥说的 , 如果觉得可以 , 希望一键三连支持一下 !

ok,那就这样吧~

欢迎各位大佬留言吐槽,也可以深入交流~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/659082.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pdf只要其中一页 pdf只要第一页怎么办 pdf只要前几页怎么弄

在现代办公环境中&#xff0c;PDF文件已经成为我们日常工作中不可或缺的一部分。然而&#xff0c;有时我们可能只需要PDF文件中的某一页&#xff0c;而不是整个文件。这时&#xff0c;我们该如何操作才能只获取所需的那一页呢&#xff1f;本文将详细操作方法&#xff0c;帮助大…

全面盘点多模态融合算法及应用场景

关注作者&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦硕博&#xff0c;复旦机器人智能实验室成员&#xff0c;阿里云认证的资深架构师&#xff0c;项目管理专业人士&#xff0c;上亿营收AI产品研发负责人 多…

工控一体机10.1寸显示器电容触摸屏(YA1308101JK)产品规格说明书

如果您对工控一体机有任何疑问或需求&#xff0c;或者对如何集成工控一体机到您的业务感兴趣&#xff0c;可移步控芯捷科技。 一、硬件功能介绍 YA1308101JK产品介绍&#xff1a; YA1308101JK搭载 Android10 主流操作系统&#xff0c;具有系统版本更高、占用内存更低、运行效率…

LeetCode583:两个字符串的删除操作

题目描述 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 代码 解法1 /*dp[i][j]&#xff1a;以i-1为结尾的wrod1中有以j-1为尾的word2的个数为了让word1和word2相同&#xff0c;最少操作…

什么是老板和工程师都喜欢的FMEA?——FMEA软件

免费试用FMEA软件-免费版-SunFMEA 在企业管理与工程技术领域&#xff0c;FMEA&#xff08;潜在失效模式与效应分析&#xff09;早已不仅仅是一个概念或工具&#xff0c;它更是一种思维方式和团队协作的精髓。那么&#xff0c;究竟什么才是老板和工程师都喜欢的FMEA呢&#xff…

学习笔记——动态路由协议——OSPF(OSPF网络类型2)

2、OSPF网络类型 常见链路层协议对应的默认网络类型 网络类型 描述 常见链路层协议 Hello报文间隔 报文类型 有无DR、BDR选举 P2P 点对点网络 HDLC、PPP、LAPB 10s 以组播方式发送OSPF报文 有 P2MP 点对多点网络 无 30s 以组播方式发送Hello报文&#xff0c;单…

YOLOv10最详细全面讲解2- 目标检测-环境搭建、训练自己的数据集

YOLOv10没想到出来的如此之快&#xff0c;作为一名YOLO的爱好者&#xff0c;以YOLOv5和YOLOv8的经验&#xff0c;打算出一套从数据集装备->环境配置->训练->验证->目标追踪全系列教程。请大家多多点赞和收藏&#xff01;&#xff01;&#xff01; 系列文章&#xf…

基于h5和大数据的游戏数据型网站-计算机毕业设计源码30844

摘 要 在目前的形势下&#xff0c;科技力量已成为我国的主要竞争力。而在科学技术领域&#xff0c;计算机的使用逐渐达到成熟&#xff0c;无论是从国家到企业再到家庭&#xff0c;计算机都发挥着其不可替代的作用&#xff0c;可以说计算机的可用领域遍及生活、工作的各个方面。…

TPM是如何平衡设备维护与生产需求的?

在当今快节奏的生产环境中&#xff0c;设备维护与生产需求之间的平衡成为了企业持续发展的关键所在。TPM&#xff08;全面生产维护&#xff09;作为一种先进的生产管理理念&#xff0c;为企业提供了实现这一平衡的有效路径。具体如深圳天行健精益管理咨询公司下文所述&#xff…

四川古力未来科技抖音小店畅享多重好处

在当今数字化浪潮席卷之下&#xff0c;四川古力未来科技抖音小店以其独特的魅力&#xff0c;正逐渐成为消费者们的新宠。作为融合了先进科技与便捷购物体验的创新平台&#xff0c;它不仅能够满足消费者的多样化需求&#xff0c;更在提升购物体验、优化服务流程等方面展现出了显…

【ai】livekit服务本地开发模式及example app信令交互详细流程

文档要安装git lfs 下载当前最新版本1.6.1 windows版本&#xff1a;启动dev模式 服务器启动 (.venv) PS D:\XTRANS\pythonProject\LIVEKIT> cd .\livekit_release\ (.venv) PS D:\XTRANS\pythonProject\LIVEKIT\livekit_release> lsDirectory: D:\XTRANS\pythonProject\L…

MyBatis入门——MyBatis的基础操作(2)

目录 一、打印日志 二、参数传递 常见错误&#xff1a;使用对象接受 小结&#xff1a; 三、增&#xff08;Insert&#xff09; 返回主键 四、删&#xff08;Delete&#xff09; 五、改&#xff08;Update&#xff09; 六、查&#xff08;Select&#xff09; 1、起别名…

【wiki知识库】03.前后端的初步交互(展现所有的电子书)

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 目录 一、&#x1f525;今日目标 二、&#x1f4c2;前端配置文件补充 三、&#x1f30f;前端Vue的改造 四、&#x1f4a1;总结 一、&#x1f525;今日目标 在上一篇文章当中&#xff0c;我已带大家把后端的一些基本工…

最新微信发卡小程序 发卡网卡密系统流支持量主

2024.4更新 1.修复分类介绍报错 2.修改前端UI 3.增加插屏弹出广告 4.禁止PC端使用(PC端小程序没有广告) 免费下载&#xff1a;发卡小程序 卡密系统流支持量主 多种卡密领取模式【亲测】_麦田吧 前端演示地址&#xff1a;扫码查看 源码功能&#xff1a; 小程序系统/多种卡密领…

vscode远程登录阿里云服务器【使用密钥方式--后期无需再进行密码登录】【外包需要密码】

1&#xff1a;windows主机上生成【私钥】【公钥】 1.1生成公钥时不设置额外密码 1.2生成公钥时设置额外密码【给外包人员使用的方法】 2&#xff1a;在linux服务器中添加【公钥】 3&#xff1a;本地vscode连接linux服务器的配置 操作流程如下 1.1本地终端中【生成免密登录…

14.微信小程序之地理定位功能

目录 1.地理定位介绍 1.1 申请开通 1.2 使用方法 2.拒绝授权后的解决方案 3.开通腾讯位置服务 4.LBS 逆地址解析 1.地理定位介绍 小程序地理定位是指通过小程序开发平台提供的 API&#xff0c;来获取用户的地理位置信息。用户在使用小程序时&#xff0c;可以授权小程序获…

MySQL 数据表的基本操作

文章目录 【 1. MySQL 创建数据表 】【 2. MySQL 查看表 】2.1 DESCRIBE/DESC 以表格的形式展示表2.2 SHOW CREATE TABLE 以SQL语句的形式展示表 【 3. 修改数据表 】3.1 修改表名3.2 修改表字符集3.3 添加字段在末尾添加字段在开头添加字段在中间添加字段 3.3 修改/删除字段修…

Nginx的配置与调试

目录 1、安装Nginx 2、Nginx的配置文件结构 2.1 Nginx的全局配置 2.2 HTTP服务器配置 2.3 HttpGzip模块配置 2.4 负载均衡配置 2.5 server虚拟主机配置 2.6 location URL匹配配置 2.7 StubStatus模块配置 1、安装Nginx 在安装Nginx之前&#xff0c;需确保系统已经安装…

【计算机网络】P1 计算机网络概念、组成、功能、分类、标准化工作以及性能评估指标

目录 1 什么是计算机网络2 计算机网络的组成2.1 组成部分上2.2 工作方式上2.3 功能组成上 3 计算机网络的功能3.1 数据通信3.2 资源共享3.3 分布式处理3.4 提高可靠性3.5 负载均衡 4 计算机网络的分类4.1 按分布范围分类4.2 按传输技术分类4.3 按照拓扑结构分类4.4 按使用者分类…

vue项目中使用json编辑器

实现效果&#xff1a; 借助插件json-editor-vue3实现效果如图一&#xff0c;如果嫌丑可以通过类名改一下样式如图二。 实现过程&#xff1a; 安装插件&#xff1a;npm install json-editor-vue3 文档链接&#xff1a;GitCode - 开发者的代码家园 <script setup name&quo…