• Django系列8-员工管理系统实战--部门管理


    一. 部门管理(原始方法)

    首先初步的绘制一个部门管理的页面
    image.png

    二. 前端HTML页面处理

    2.1 模板的继承

    我们首先定义一个模板,然后其它新增的HTML都集成该模板的样式即可。

    layout.html

    {% load static %}
    DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Titletitle>
        <link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.min.css' %}">
        <style>
            .navbar {
                border-radius: 0;
            }
        style>
    head>
    <body>
    <nav class="navbar navbar-default">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
                        data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                    <span class="sr-only">Toggle navigationspan>
                    <span class="icon-bar">span>
                    <span class="icon-bar">span>
                    <span class="icon-bar">span>
                button>
                <a class="navbar-brand" href="#"> 用户管理系统 a>
            div>
            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                <ul class="nav navbar-nav">
                    <li><a href="/depart/list/">部门管理a>li>
                    <li><a href="/user/list/">用户管理a>li>
                    <li><a href="#">Linka>li>
    
    
                ul>
                <ul class="nav navbar-nav navbar-right">
                    <li><a href="#">登录a>li>
    
                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
                           aria-expanded="false">只是甲 <span class="caret">span>a>
                        <ul class="dropdown-menu">
                            <li><a href="#">个人资料a>li>
                            <li><a href="#">我的信息a>li>
                            <li role="separator" class="divider">li>
                            <li><a href="#">注销a>li>
                        ul>
                    li>
                ul>
            div>
        div>
    nav>
    
    <div>
        {% block content %}{% endblock %}
    div>
    
    
    <script src="{% static 'js/jquery-3.6.0.min.js' %}">script>
    <script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.min.js' %}">script>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61

    2.2 新建部门

    depart_add.html

    {% extends 'layout.html' %}
    
    {% block content %}
        <div class="container">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h3 class="panel-title"> 新建部门 h3>
                div>
                <div class="panel-body">
                    <form method="post">
                        {% csrf_token %}
                        <div class="form-group">
                            <label>部门名称label>
                            <input type="text" class="form-control" placeholder="部门名称" name="title"/>
                        div>
    
                        <button type="submit" class="btn btn-primary">提 交button>
                    form>
                div>
            div>
        div>
    {% endblock %}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    2.3 部门列表

    depart_list.html

    {% extends 'layout.html' %}
    
    {% block content %}
        <div class="container">
            <div style="margin-bottom: 10px">
                <a class="btn btn-success" href="/depart/add/">
                    <span class="glyphicon glyphicon-plus-sign" aria-hidden="true">span>
                    新建部门
                a>
            div>
            <div class="panel panel-default">
                
                <div class="panel-heading">
                    <span class="glyphicon glyphicon-th-list" aria-hidden="true">span>
                    部门列表
                div>
    
                
                <table class="table table-bordered">
                    <thead>
                    <tr>
                        <th>IDth>
                        <th>名称th>
                        <th>操作th>
                    tr>
                    thead>
                    <tbody>
                    {% for obj in queryset %}
                        <tr>
                            <th>{{ obj.id }}th>
                            <td>{{ obj.title }}td>
                            <td>
                                <a class="btn btn-primary btn-xs" href="/depart/{{ obj.id }}/edit/">编辑a>
                                <a class="btn btn-danger btn-xs" href="/depart/delete/?nid={{ obj.id }}">删除a>
                            td>
                        tr>
                    {% endfor %}
                    tbody>
                table>
            div>
        div>
    {% endblock %}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    2.4 部门数据修改

    depart_edit.html

    {% extends 'layout.html' %}
    
    {% block content %}
    
        <div class="container">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h3 class="panel-title"> 修改部门 h3>
                div>
                <div class="panel-body">
                    <form method="post">
                        {% csrf_token %}
                        <div class="form-group">
                            <label>标题label>
                            <input type="text" class="form-control" placeholder="标题" name="title"
                                   value="{{ row_object.title }}"/>
                        div>
    
                        <button type="submit" class="btn btn-primary">提 交button>
                    form>
                div>
            div>
        div>
    {% endblock %}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    三. django后台调整

    3.1 修改url

    按照如下格式新增指定的url
    image.png

    3.2 编写函数逻辑

    views.py

    from django.shortcuts import render, redirect
    from app01 import models
    
    
    def depart_list(request):
        """ 部门列表 """
    
        # 去数据库中获取所有的部门列表
        #  [对象,对象,对象]
        queryset = models.Department.objects.all()
    
        return render(request, 'depart_list.html', {'queryset': queryset})
    
    
    def depart_add(request):
        """ 添加部门 """
        if request.method == "GET":
            return render(request, 'depart_add.html')
    
        # 获取用户POST提交过来的数据(title输入为空)
        title = request.POST.get("title")
    
        # 保存到数据库
        models.Department.objects.create(title=title)
    
        # 重定向回部门列表
        return redirect("/depart/list/")
    
    
    def depart_delete(request):
        """ 删除部门 """
        # 获取ID http://127.0.0.1:8000/depart/delete/?nid=1
        nid = request.GET.get('nid')
    
        # 删除
        models.Department.objects.filter(id=nid).delete()
    
        # 重定向回部门列表
        return redirect("/depart/list/")
    
    
    def depart_edit(request, nid):
        """ 修改部门 """
        if request.method == "GET":
            # 根据nid,获取他的数据 [obj,]
            row_object = models.Department.objects.filter(id=nid).first()
            return render(request, 'depart_edit.html', {"row_object": row_object})
    
        # 获取用户提交的标题
        title = request.POST.get("title")
    
        # 根据ID找到数据库中的数据并进行更新
        # models.Department.objects.filter(id=nid).update(title=title,其他=123)
        models.Department.objects.filter(id=nid).update(title=title)
    
        # 重定向回部门列表
        return redirect("/depart/list/")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57

    四. 页面测试

    1. 访问页面:
    image.png

    2. 新建部门
    image.png
    点击提交后,跳转到部门列表页面:
    image.png

    3. 修改部门名称
    image.png
    修改完成后也直接跳转到部门列表页面
    image.png

    4. 部门删除
    image.png
    点击删除后,立马删除,然后马上跳转到部门列表页面

    参考:

    1. https://www.bilibili.com/video/BV1NL41157ph
  • 相关阅读:
    卡尔曼滤波基本原理详解
    spring boot thymeleaf 404 error
    用非递归的方法实现二叉树中的层遍历,先序遍历,中序遍历和后序遍历
    《算法竞赛进阶指南》 雪花雪花雪花
    Datax3.0+DataX-Web打造分布式可视化ETL系统
    # 从浅入深 学习 SpringCloud 微服务架构(一)基础知识
    【高并发】从源码角度深度解析线程池是如何实现优雅退出的
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java宿舍管理系统8n6jf
    简易TXT文本小说阅读器
    Fedora文件历史记录怎么开启? Fedora历史记录的显示方法
  • 原文地址:https://blog.csdn.net/u010520724/article/details/126828502