使用Python实现管理系统附源码
作者:Rainbowman?0 发布时间:2023-04-04 04:22:34
0. 前言
这几天在写软件工程课设,题目是:设计一款疫苗管理系统,于是用PyQT5写GUI,MySQL做数据库写了一个demo出来。
做完之后,给我的感觉是像这种管理系统类的东西本质上就是对数据库的增删改查,界面是为了方便普通用户操作而存在的。
其实一开始前端想过用web,但后来还是偷懒用了PyQT5写GUI。下次有机会可能会尝试一下web前端(之前从来没用过)。
这次主要代码量有1200多行(不带UI界面代码),整体写的有些乱,代码复用和代码管理方面做得不太行,不过写了详细的注释。写这个博客主要为了记录和总结,同时可以互相学习交流。
1. 题目要求
先来看看课设的题目要求:
2. 要求分析
首先把题目直接说出的要求列出来,用户和需求模块如下:
接着做更进一步的分析,补充了一些功能,最终的大致流程如下:
确定了大致流程后,需要开始创建数据库了。我的代码中数据库是需要手动创建的,很简单,在第4部分“源码及其使用”中我会具体介绍。先分析需要创建的数据库(database)及表格(table):
创建的数据库和表格如下:
3.效果展示
先来看看代码的效果如何(所有在前端的操作都会同步到数据库更新),这里只展示部分效果,还有些错误提示什么的细节就不展示了。
3.1 主界面
3.2 注册界面
3.3 管理员
3.3.1 管理员登陆界面
3.3.2 管理员——疫苗信息管理界面
3.3.3 管理员——社区医院管理界面
3.4 社区医院
3.4.1 社区医院登陆界面
3.4.2 社区医院——医院信息管理界面
3.4.3 社区医院——用户预约界面
3.4.5 社区医院——接种信息管理界面
3.4.6 社区医院——不良反应反馈界面
3.5 普通用户
3.5.1 普通用户登陆界面
3.5.2 普通用户——个人信息管理界面
3.5.3 普通用户——家庭信息管理界面
3.5.4 普通用户——接种预约界面
3.5.5 普通用户——不良反应反馈界面
4. 源码及使用说明
源码链接:链接: https://pan.baidu.com/s/1qQehJ8P_nouEIzGqqBkmNA
提取码:v9d6
首先看下文件结构:
control.py是主代码,UI文件夹里是UI文件的代码,不用管,assets里是一些图片,我本来想给界面加些背景和图标的,但后来发现一直有问题,就没加。
理论上讲只要配置好环境,按要求创建好数据库就可以运行了。
4.1 需要的环境(第三方库)
看一下我的运行环境
没太多额外的库,用anaconda创建虚拟环境,然后额外安装好pyqt5和pymysql库(为了和数据库相连)就行了。如何安装,百度就能解决。
4.2 创建数据库
需要首先安装好mysql数据库,安装教程有很多,不说了。
然后需要手动创建我之前说的数据库和那几个表格,具体代码如下:
(数据库和表的名字不能错,因为代码和数据库和表的名字连接)
(1)登录mysql
mysql -u root -p
(2)创建vaccine_info数据库
create database vaccine_info;
(3)创建user_info表格
create table user_info(
id varchar(20) primary key,
password varchar(20),
role varchar(1));
(4)在user_info表格中插入管理员
这么做是因为从安全的角度考虑,管理员这一权限最大的用户由数据库操作者手动添加最为合适。
insert into user_info (id, password, role) values ('admin1', '123456', 'A');
(5)创建commonuser_info表格
create table commonuser_info(
id varchar(20) primary key,
name varchar(20),
family_code varchar(8),
age int(3),
sex varchar(1),
phone varchar(20),
IDCard varchar(30),
is_book varchar(1),
book_time varchar(11),
is_bad_reaction varchar(1),
what_bad_reaction varchar(60));
看看commonuser_info
长什么样子:
(6)创建vaccines_info:
create table vaccines_info(
type varchar(10),
company varchar(20),
user_type varchar(20),
user_age varchar(20),
price varchar(7));
(7)创建hospital_info表格:
create table hospital_info(
id varchar(20) primary key,
name varchar(20),
num varchar(10),
is_book varchar(1),
time varchar(20));
(8)创建 inoculate_info表格:
create table inoculate_info(
id varchar(20) primary key,
vaccine_type varchar(200),
time varchar(200));
至此,数据库配置完成,总共有5个表格:
之后直接运行control.py就可以了。
5. 总结
这次课设还是学到了一些东西的,主要是数据库的一些基本使用,以前一直不太清楚数据库到底要怎么用。
不过说实话学到的东西和花费的时间不成正比,当会用数据库操作和写界面时,之后的工作就是在重复了。当然,我写的也只是demo水平,仅供娱乐参考。
另外,部署环境和数据库配置等我已经说得比较详细了,如果配置过程出了问题相信百度就可以解决。
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
来源:https://blog.csdn.net/qq_44166630/article/details/122337925
猜你喜欢
- 本文使用TensorFlow实现最简单的线性回归模型,供大家参考,具体内容如下线性拟合y=2.7x+0.6,代码如下:import tens
- 本文实例讲述了Python HTML解析器BeautifulSoup用法。分享给大家供大家参考,具体如下:BeautifulSoup简介我们
- 一、引言网络上充满了窃听,我们的信息很容易被不怀好意的人获得,给我们造成不好的影响。如果你需要在网络上传输机密或者敏感的隐私信息,为了防备别
- 目录Python 数据化运营1、内容介绍2、一般应用场景3、聚类的常见方法4、Keans聚类实现5、聚类的评估指标6、聚类效果可视化7、数据
- 将单引号替换为双引号1、若对象为字符串str = "{'err_no': 0,'err_str':
- 今天分享的这篇文章,文字不多,代码为主。绝对干货,童叟无欺,主要分享了提升 Python 性能的 20 个技巧,教你如何告别慢Python。
- 这篇论坛文章(赛迪网技术社区)详细的介绍了在MySQL中使用GRANT语句增添新用户的具体步骤,更多内容请参考下文…&
- SAX将dd.xml解析成html。当然啦,如果得到了xml对应的xsl文件可以直接用libxml2将其转换成html。#!/usr/bin
- 本文实例讲述了python获取图片颜色信息的方法。分享给大家供大家参考。具体分析如下:python的pil模块可以从图片获得图片每个像素点的
- 一提起Google的产品,大多数人可能都会想到用一个词来形容,“简洁”。简单得来又实用,这就是Google的产品设计方针了。Jon Wile
- javascript实现翻页效果:<html> <head> <title>上下翻页看 - aspxho
- 前言相信大家初入某个项目,一般都要看代码。有时候,想把代码文件打印下来看,不过一般代码文件数量都在两位数或更多,逐一打开、打印,确实太耗费精
- 1. 程序背景之前做文件批量移动的时候不小心多加了一个pdf后缀,但问题不大,几行代码就可以搞定~2. 程序要求将以下目录中文件夹中的有问题
- 本文实例讲述了python实现线程池的方法。分享给大家供大家参考。具体如下:原理:建立一个任务队列,然多个线程都从这个任务队列中取出任务然后
- 前言本文主要给大家介绍了关于python用队列asyncio.Queue通讯的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详
- 如何正确显示数据库里同时存在的GB码和BIG5码? Public Function CheckBIG(strS
- 在我之前解释了flask如何支持多线程主要通过两个类来实现,LocalStack和Local,在Local中有两个属性,__storage_
- 合并:torch.cat(inputs=(a, b), dimension=1)e.g. x = torch.cat((x,y), 0) 沿
- 楔子在 Python3.6 之前,格式化字符串一般会使用百分号占位符或者 format 函数,举个例子:name = &
- 在python中读取一个文本文件相信大家都比较熟悉了,但如果我们遇到一个二进制文件要读取怎么办呢?我们尝试使用 Python 中的内置 op