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

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

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

功能逻辑介绍:

管理员通过数据库添加部门数据,前端通过触发部门管理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))

运行后界面展示:


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

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

相关推荐

用豆包生成的BMI计算器(豆包的热量是多少?)

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8&#...

Android 开发中文引导-应用小部件

应用小部件是可以嵌入其它应用(例如主屏幕)并收到定期更新的微型应用视图。这些视图在用户界面中被叫做小部件,并可以用应用小部件提供者发布。可以容纳其他应用部件的应用组件叫做应用部件的宿主(1)。下面的截...

Qt推流(视频文件/视频流/摄像头/桌面转流媒体rtmp+hls+webrtc)

一、前言说明推流直播就是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号从手机端,电脑端,摄影机端打包传到服务器的过程。“推流”对网络要求比较高,如果网络不稳定,直播效果就会很差,观...

一看就会!谷歌广告转化跟踪详细设置指南来了

在出海推广业务中,投放广告最常见的目的是获取订单,但我们怎么知道有没有达成投放目的呢?谷歌转化跟踪技术就可以做到!熟悉谷歌的卖家朋友都知道,转化跟踪在最近几年变得越来越复杂了,虽然有很多选项可以自定义...

Android原生编解码接口MediaCodec详解

作者:躬行之MediaCodec是Android中的编解码器组件,用来访问底层提供的编解码器,通常与MediaExtractor、MediaSync、MediaMuxer、MediaCrypt...

手把手搭建RTSP流媒体服务器(rtsp 流媒体)

0.引言本文主要讲解如何搭建RTSP流媒体服务器的过程,使用开源项目ZLMediaKit。通过这个开源项目,推RTSP流到服务器,然后拉流端可以拉取RTSP、RTMP等流。ZLMediaKit码云链接...

MediaInfo 24.04.0 是一个关于多媒体文件的信息提供工具

MediaInfo24.04.0是一个关于多媒体文件的信息提供工具(仅当文件中包含信息时才提供):包括常规信息(标题、作者、导演、专辑、曲目编号、日期、时长等);视频信息(编解码器、画面比例、帧率...

rmvb格式视频怎么打开,rmvb转MP4认准这个方法

 一、rmvb是什么格式?  RMVB是一种视频文件格式,其中的VB指的是可变比特率。比起上一代的RM格式,RMVB  格式的画面比较清晰,因为它是降低了静态画面下的比特率。  二、制作rmvb  ①...

教你用Plex Media Server,把铁威马变成你的“私人好莱坞”!

TNAS(铁威马NAS)中可以安装多媒体服务器、影视、PlexMediaServer、EmbyServer作为个人媒体服务器使用。PlexMediaServer可以组织整理TNAS上的媒体...

你肯定用过!经典Windows软件被抛弃

Windows系统这些年持续更新的过程中,不断融入新的软件和功能的同时,一些经典的应用也渐渐成为了历史……Windows媒体播放器被抛弃Windows系统不断地推陈出新,一些老旧的组件也难免被抛弃,在...

博思得Q8标签打印全能手(博思得标签打印机安装教程)

2014-12-0905:35:00作者:宋达希【中关村在线办公打印频道原创】服装吊牌、洗涤标签、产品说明标签等都要用到标签打印机,这些标签涵盖多种尺寸的长度和宽度以及材质。另外作为一件商品或者产...

flv文件用什么播放器打开,这样做不踩雷!

FLV是FLASHVIDEO的简称,是随着FlashMX的推出发展而来的视频格式。它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等问题。一、...

media player怎么转换格式?音频转换神器推荐!

Windowsmediaplayer怎么转换格式?WindowsMediaPlayer是微软公司出品的一款多媒体播放器,通常简称“WMP”。提供了编辑音频和视频文件的功能。用户可以使用该软件导...

视频参数检查工具更新:MediaInfo 23.10

MediaInfo提供有关视频或音频文件的技术和标签信息。信息示例包括编解码器、比特率、每秒帧数、宽度、高度、频道数、持续时间、标题、作者、字幕语言和章节名称。多种方式可以查看信息(文本、工作表、树和...

多媒体管理软件:JRiver Media Center 31.0.68 (64位)

JRiverMediaCenter64位是适用于大量库的完整媒体解决方案。它组织、播放和标记所有类型的媒体文件,并对Xbox、PS3、UPnP、DLNA和TiVo进行翻录、刻录。JRiverM...