百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

企业级UI自动化平台—部门管理实现

zhezhongyun 2025-04-09 22:41 59 浏览

功能逻辑介绍:

管理员通过数据库添加部门数据,前端通过触发部门管理icon,列出已经添加的部门数据。

1:首先创建数据表信息,

我们重点是学会整体思路,避免过多参数复杂了理解,简单点,就先创建两个字段,一个部门id,一个部门名称。

我们在其插入几条数据,数据库建表语句:

SET NAMES utf8;

SET FOREIGN_KEY_CHECKS = 0;

DROP TABLE IF EXISTS `department`;

CREATE TABLE `department` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

INSERT INTO `department` VALUES (1, '部门1');

INSERT INTO `department` VALUES (2, '部门2');

INSERT INTO `department` VALUES (3, '部门3');

INSERT INTO `department` VALUES (4, '部门4');

INSERT INTO `department` VALUES (5, '部门5');

INSERT INTO `department` VALUES (6, '部门6');

SET FOREIGN_KEY_CHECKS = 1;

前端在templates下创建homepage.html。用于加载首页。

首页布局暂定为左右结构,也就是模块按钮定义在侧边栏位置,右侧区域动态加载各个模块内容。

在homepage.html实现两个div:


欢迎来到自动化测试平台

点击部门管理后请求后端路由函数/departments.

后端在index.py函数内创建departments路由用于转发到部门管理页面。

@app.route('/departments')
def departments():
    return render_template('departments.html')

然后在前端在templates下创建继续departments.html前端界面,此界面

通过ajax请求后台数据信息,加载到前端界面进行展示。

定义一个table,其中包含一个tbody和一个thead。

thead是表格头部信息,tbody对应头部信息的真实数据。

部门 ID 部门名称

ajax请求函数实现:

<script>
    $(document).ready(function () {
        $(document).ready(function () {
            $.ajax({
                url: '/get-departments',
                type: 'GET',
                success: function (res) {
                    let departments = res.departments;
                    for (let department of departments) {
                        $('table tbody').append(`
              
                  ${department.id}
                  ${department.name}
              
          `);
                    }
                },
                error: function (err) {
                    console.error('获取部门数据失败', err);
                }
            });
        });
    });
</script>

ajax请求的url为后端请求数据路由,因为是向服务端获取数据显示,请求type为get。

此时在后端casecommon.py实现/get-departments路由函数。

此函数需要连接数据库,执行sql查询,将所有数据转换为json格式,返回给前端用于展示。

为了后面查询数据,这里我将数据库查询封装在dbbase.py文件中。此文件类名为DBbase。

数据库连接操作为:


查询sql封装为:


/get-departments路由函数具体实现为:

from flask import jsonify
from app.dbbase import DBbase
db = DBbase()
from app import app
@app.route('/get-departments', methods=['GET'])
def get_departments():
    # mycursor.execute("SELECT id, name FROM department")
    # departments = mycursor.fetchall()
    sql = "SELECT id, name FROM department"
    departments = db.select_data(sql)
    departments_list = [{'id': d[0], 'name': d[1]} for d in departments]
    return jsonify({'departments': departments_list})

将查询到的整个departments重新组装数据,每条部门数据装在列表中。

原始查询后departments数据形式{{},{},{}}。组装后的形式为

{ "departments":

[ {"id": 1, "name": "部门1"}, {"id": 2, "name": "部门2"}, {"id": 3, "name": "部门3"}, ... ]

}。

将此数据赋值给departments_list。在通过jsonify转换为json格式进行返回给前端。

那么这整个数据的key即为departments,value即为一个装载每条部门信息数据的列表。

前端接收到数据后,jquary会默认将其转换为前端可识别的数据形式。这时候在将数据进行拆分,定义一个res参数用来接收全部数据,在定义一个参数将value值全部获取赋给departments。此时departments数据结构为

[ {"id": 1, "name": "部门1"}, {"id": 2, "name": "部门2"}, {"id": 3, "name": "部门3"}, ...]

遍历departments,for-of循环遍历res.departments数组,每次循环中的变量department都是一个表示部门的对象,你可以直接访问department.id和department.name来获取部门的ID和名称。在找到界面所有的tbody将其append进去。

在函数的主运行入口定义以下内容:

from http import server
from urllib import request
from app import app
if __name__ == '__main__':
    app.run(host="0.0.0.0", debug=True,port=9555)
    server.logger.info('info log')
    server.logger.info('【请求的方法】{}【请求路径】{}【请求地址】{}'.format(request.method, request.path, request.remote_addr))

运行后界面展示:


整体部门管理完整实现流程如上。

下一节:项目管理模块实现,敬请期待。

相关推荐

perl基础——循环控制_principle循环

在编程中,我们往往需要进行不同情况的判断,选择,重复操作。这些时候我们需要对简单语句来添加循环控制变量或者命令。if/unless我们需要在满足特定条件下再执行的语句,可以通过if/unle...

CHAPTER 2 The Antechamber of M de Treville 第二章 特雷维尔先生的前厅

CHAPTER1TheThreePresentsofD'ArtagnantheElderCHAPTER2TheAntechamber...

CHAPTER 5 The King&#39;S Musketeers and the Cardinal&#39;S Guards 第五章 国王的火枪手和红衣主教的卫士

CHAPTER3TheAudienceCHAPTER5TheKing'SMusketeersandtheCardinal'SGuard...

CHAPTER 3 The Audience 第三章 接见

CHAPTER3TheAudienceCHAPTER3TheAudience第三章接见M.DeTrévillewasatt...

别搞印象流!数据说明谁才是外线防守第一人!

来源:Reddit译者:@assholeeric编辑:伯伦WhoarethebestperimeterdefendersintheNBA?Here'sagraphofStea...

V-Day commemorations prove anti-China claims hollow

People'sLiberationArmyhonorguardstakepartinthemilitaryparademarkingthe80thanniversary...

EasyPoi使用_easypoi api

EasyPoi的主要特点:1.设计精巧,使用简单2.接口丰富,扩展简单3.默认值多,writelessdomore4.springmvc支持,web导出可以简单明了使用1.easypoi...

关于Oracle数据库12c 新特性总结_oracle数据库12514

概述今天主要简单介绍一下Oracle12c的一些新特性,仅供参考。参考:http://docs.oracle.com/database/121/NEWFT/chapter12102.htm#NEWFT...

【开发者成长】JAVA 线上故障排查完整套路!

线上故障主要会包括CPU、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题...

使用 Python 向多个地址发送电子邮件

在本文中,我们将演示如何使用Python编程语言向使用不同电子邮件地址的不同收件人发送电子邮件。具体来说,我们将向许多不同的人发送电子邮件。使用Python向多个地址发送电子邮件Python...

提高工作效率的--Linux常用命令,能够决解95%以上的问题

点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf为什么要学习Linux命令?1、因为Li...

linux常用系统命令_linux操作系统常用命令

系统信息arch显示机器的处理器架构dmidecode-q显示硬件系统部件-(SMBIOS/DMI)hdparm-i/dev/hda罗列一个磁盘的架构特性hdparm-tT/dev/s...

小白入门必知必会-PostgreSQL-15.2源码编译安装

一PostgreSQL编译安装1.1下载源码包在PostgreSQL官方主页https://www.postgresql.org/ftp/source/下载区选择所需格式的源码包下载。cd/we...

Linux操作系统之常用命令_linux系统常用命令详解

Linux操作系统一、常用命令1.系统(1)系统信息arch显示机器的处理器架构uname-m显示机器的处理器架构uname-r显示正在使用的内核版本dmidecode-q显示硬件系...

linux网络命名空间简介_linux 网络相关命令

此篇会以例子的方式介绍下linux网络命名空间。此例中会创建两个networknamespace:nsa、nsb,一个网桥bridge0,nsa、nsb中添加网络设备veth,网络设备间...