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

news2024/11/20 8:27:57

对应视频链接点击直达

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.coloradmin.cn/o/1709828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

项目9-网页聊天室3(主界面之用户信息)

1.前端页面 CSS: 如何让img里的图片自适应div&#xff0c;且不变形_img自适应div大小 铺满且不变形-CSDN博客 JavaScript/jQuery 如何改变一个img元素的src属性|极客教程 (geek-docs.com) 2.要求 左上角显示用户的昵称和头像. 3.后端代码 3.1 添加拦截器 3.2 注册拦截器 …

深入解析MySQL 8中的角色与用户管理

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 深入解析MySQL 8中的角色与用户管理 前言角色和用户的基础概念用户&#xff08;User&#xff09;…

收银系统源码--零售连锁店铺如何选择适合自己的收银系统?

如果你现在还认为小便利店只要简单的收款&#xff0c;只有大型的连锁便利店才需要收银软件和管理软件&#xff0c;那你就错了&#xff0c;连锁品牌的便利店是必须要用到专业的收银软件&#xff0c;但是小微型的便利店更应该要用专门的软件&#xff0c; 在各行各业逐步革新互联网…

【ai】LiveKit Agent 的example及python本地开发模式工程实例

title: ‘LiveKit Agent Playground’ playgroundLiveKit Community playground的环境变量&#xff1a;LiveKit API # LiveKit API Configuration LIVEKIT_API_KEYYOUR_API_KEY LIVEKIT_API_SECRETYOUR_API_SECRET# Public configuration NEXT_PUBLIC_LIVEKIT_URLwss://YOUR_…

计算机网络基础 - 计算机网络和因特网(1)

计算机网络基础 计算机网络和因特网什么是 Internet?具体构造的的角度服务角度网络结构 网络边缘网络核心电路交换分组交换概述排队时延和分组丢失转发表和路由选择协议按照有无网络层的连接 分组交换 VS 电路交换 接入网DSL 因特网接入电缆因特网接入光纤到户 FTTH无线接入网…

十五、Python模块 1、(入门一定看!!!)「长期更新Python简单入门到适用」

首先什么是模块&#xff1f; 小伙伴们经常看我写的教程不难发现&#xff0c;前面我们用过几次模块就是sys的那个&#xff0c;其实python不仅标准库中包含了大量的模块&#xff08;也被称之为准模块&#xff09;&#xff0c;还有大量的第三方模块&#xff0c;开发者也可以自己发…

图卷积神经网络的简史 及其与卷积神经网络的异同

图卷积神经网络&#xff08;GCN&#xff09;已经在处理图结构数据方面取得了巨大的成功。在本小节中&#xff0c;我们将深入探讨图卷积神经网络的起源、发展历程&#xff0c;并提供一个简单的Python代码实现示例&#xff0c;以帮助读者更好地理解这一概念。 图卷积神经网络的简…

Echarts图表库推荐以及使用Echarts实现饼图端头弧形效果

推荐Echarts图表库官方链接http://www.ppchart.com/#/ 下面是一段实现饼图端头弧形效果的Echarts代码 下面代码可以直接新建html文件运行看效果也可以看我下面贴的效果图 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&q…

【深度学习实战—8】:基于MediaPipe的人脸检测

✨博客主页&#xff1a;王乐予&#x1f388; ✨年轻人要&#xff1a;Living for the moment&#xff08;活在当下&#xff09;&#xff01;&#x1f4aa; &#x1f3c6;推荐专栏&#xff1a;【图像处理】【千锤百炼Python】【深度学习】【排序算法】 目录 &#x1f63a;一、Med…

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(八)

本系列课程&#xff0c;将重点讲解Phpsploit-Framework框架软件的基础使用&#xff01; 本文章仅提供学习&#xff0c;切勿将其用于不法手段&#xff01; 继续接上一篇文章内容&#xff0c;讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 现在&#xff0c;我们…

如何实现虚拟列表?定高和不定高两种场景

之前我写了一篇文章&#xff1a;如何使用 IntersectionObserver API 来实现数据的懒加载 在文章的最后&#xff0c;我们提到如果加载的列表数据越来越多&#xff0c;我们不可能把所有的数据都渲染出来&#xff0c;因为这样会导致页面卡住甚至崩溃。 为了优化这种长列表场景&am…

英伟达SSD视觉算法,jetson.inference在jetson nano中部署

一、用官方镜像刷机 安装SD卡擦除工具SD Card Formatter https://www.sdcardformatter.com/download/ 格式化SD卡 下载官方镜像 https://developer.nvidia.com/jetson-nano-sd-card-image 安装刷机工具balenaEtcher https://www.balena.io/etcher 将上面下载的镜像压缩包解…

[leetcode hot 150]第五十六题,合并区间

题目&#xff1a; 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 思路&#xff1a; 这道题目要求合并一…

若依跳转(新增)页面,在菜单中不显示的页面

在router.js文件中 跳转方式 this.$router.push(/monitor/b/b)

Java面试八股之++操作符是线程安全的吗

操作符是线程安全的吗 操作符本身在Java中并不是线程安全的。这个操作实际上包含三个步骤&#xff1a;读取变量的值、将值加1、然后将新值写回内存。在多线程环境下&#xff0c;如果多个线程同时对同一个变量执行操作&#xff0c;就可能出现竞态条件&#xff08;race conditio…

数据结构(七)递归、快速排序

文章目录 一、递归&#xff08;一&#xff09;使用递归实现1~n求和1. 代码实现&#xff1a;2. 调用过程&#xff1a;3. 输出结果&#xff1a; &#xff08;二&#xff09;青蛙跳台阶问题1. 问题分析2. 代码实现3. 输出结果4. 代码效率优化5. 优化后的输出结果 二、快速排序&…

STM32系列-STM32介绍

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” STM32介绍 STM32介绍 ST&#xff1a;指的是意法半导体 M&#xff1a;指定微处理器 32&#xff1a;表示计算机处理器位数 ARM分成三个系列&#xff1a; Cortex-A&#xff1…

PostgreSQL数据库提权

前面讲述了mysql、SqlServer、Redis数据库相关的提权方式&#xff0c;有兴趣的也可以去看看。 这里讲的postgreSQL数据库提权就是任意命令执行漏洞(CVE-2019-9193)。 目录 数据库简介 漏洞原理 影响版本 漏洞利用 利用前提 漏洞复现 复现准备 复现过程 漏洞修复 数据…

基于C#开发web网页管理系统模板流程-主界面管理员入库和出库功能完善

前言 紧接上篇->基于C#开发web网页管理系统模板流程-主界面管理员录入和编辑功能完善-CSDN博客 本篇将完善主界面的管理员入库和出库功能&#xff0c;同样的&#xff0c;管理员入库和出库的设计套路适用于动态表的录入和编辑 首先还是介绍一下本项目将要实现的功能 &#xf…

【aI】LiveKit Agents Playground

demo 是跑在 playground中的。 语音助手demo 可以语音对话 概念 Concepts Agent: A function that defines the workflow of a programmable, server-side participant. This is your application code. Worker: A container process responsible for managing job queuing …