基于Python3+Flask+SQLite的大学实验室设备管理系统
资源下载地址:https://download.csdn.net/download/sheziqiong/85709920
资源下载地址:https://download.csdn.net/download/sheziqiong/85709920
实验室设备管理系统
应用背景
为方便实验室进行设备管理,某大学拟开发实验室设备管理系统 来管理所有实验室里的各种设备。系统可实现管理员登录,查看现有的所有设备, 增加设备等功能。
开发环境
- Mac OS
- PyCharm IDE
- Python3
- Flask(Web框架)
- SQLite(数据库)
运行方法
准备
安装virtualenv:
pip3 install virtualenv
创建虚拟环境:
virtualenv venv
进虚拟环境:
source venv/bin/activate
安装依赖的包:
pip install -r requirements.txt
退出虚拟环境:
deactivate
运
更新数据库:
python app.py db upgrade
成户:
python app.py init
运:
python app.py runserver
初始管理员账户
邮箱:zhaowrenee@gmail.com
密码:666666
功能结构
- 登录:管理员可以通过输入预置的账号密码进行登录。
- 查看设备列表:管理员在登录成功后,应立即展示所有设备信息,设备 信息应包括设备 ID 号,设备名,实验室名,购置时间,购置人。
- 增加设备:增加设备时应输入设备名,实验室名,购置人等信息,设备 增加成功后自动返回系统分配的设备 ID 号,购置时间应为系统自动生成(默认为增加设备的时间)。
- [附加] 删除设备:管理员本人购置的设备具有顶级重要性,故不能被删除
- [附加] 搜索设备:输入关键词,显示名称中包含关键词的设备列表
另外保证:
- 对输入数据进行合法性验证,并进行友好提示。
- 对数据库中的密码字段加密处理。
提示
- 设备 ID 号应保证唯一性。
- 设备名可重复。
功能细节
一、UML图
1、活动图
app.py
中function与 templates
中HTML件对应,展示在页中:
- index() 通过 SearchForm 实现对户信息的检索和展示,并通过 index.html
- add_device() 通过 UserForm 实现对新设备信息的添加,并调 add_device.html
- remove_device(id) 通过id删除设备,但不能删除管理员添加的设备
- login() 通过调 LoginForm 实现登录,并调 login.html 页登录,也是服务器提供的第个页
- 其余function对应系列错误处理和必要但和数据库关功能
2、用例图
3、顺序图
4、类图
HTML使Flask-wtf Bootstrap渲染功能,使界更美观
app.Role
为户设置的用户或者管理员角类,内部有条件角条件约束app.User
户类- 记录户名、密码、id等信息,与数据库的属性进行交互
app.Device
设备类- 记录设备名、实验室、购置人、购置时间等信息,与数据库的属性进行交互
FlaskForm 信息表
- 三种Form根据不同的操作需求,设定不同的Field
5、状态图
、基本表单的定义
表一:
roles 身份表 | ||||||
---|---|---|---|---|---|---|
名称 | 类型 | NOT NULL约束 | PRIMARY KEY约束 | UNIQUE约束 | 默认 | 外键 |
id | INTEGER | √ | √ | |||
name | VARCHAR(64) |
CREATE TABLE roles (id INTEGER NOT NULL, name VARCHAR(64), PRIMARY KEY (id), UNIQUE (name)
)
表中实体:
id | name |
---|---|
1 | User |
2 | Admin |
表二:
users 用户表 | ||||||
---|---|---|---|---|---|---|
名称 | 类型 | NOT NULL约束 | PRIMARY KEY约束 | UNIQUE约束 | 默认 | 外键 |
id | INTEGER | √ | √ | |||
number | VARCHAR(128) | |||||
username | VARCHAR(64) | |||||
password_hash | VARCHAR(128) | |||||
role_id | INTEGER | roles(id) |
CREATE TABLE users (id INTEGER NOT NULL, number VARCHAR(128), username VARCHAR(64), password_hash VARCHAR(128), role_id INTEGER, PRIMARY KEY (id), UNIQUE (password_hash), FOREIGN KEY(role_id) REFERENCES roles (id)
)
表中实体:
id | number | username | password_hash | role_id |
---|---|---|---|---|
1 | zhaowrenee@gmail.com | Admin | pbkdf2:sha256:50000$V4ZV7KEr$42b0a9825baa100fa800d0544632a1ad7d6130504ef6c397ecfa6b02ca99298d | 2 |
2 | mshi@hotmail.com | 袁帅 | pbkdf2:sha256:50000KWFWUdY9KWFWUdY9KWFWUdY9d1c334fe90415612c0d99301d45f3e5f9c3f482726cde598259d19ff1228c217 | 1 |
3 | yaoxiuying@mingding.org | 刘东 | pbkdf2:sha256:50000$rNv7gYzZ$381113b96a85934496fe06a2796893fb85689b71c373e97a5e4d9d3adfd5ef26 | 1 |
4 | vfan@hotmail.com | 吴娟 | pbkdf2:sha256:50000$cA7RmNVD$7136167bd1c3163b0ec221638b8644f12f093f3450ecc4f631c72840e26f31f3 | 1 |
5 | panjuan@hotmail.com | 刘玉珍 | pbkdf2:sha256:50000$hSqUMhqa$5dd222a191f376127e3dceb8244310cc7114dcceaa2d3bc5fa585a9429f66a02 | 1 |
表三:
devices 设备表 | ||||||
---|---|---|---|---|---|---|
名称 | 类型 | NOT NULL约束 | PRIMARY KEY约束 | UNIQUE约束 | 默认 | 外键 |
id | INTEGER | √ | √ | |||
device_id | VARCHAR(64) | |||||
lab | VARCHAR(64) | |||||
name | VARCHAR(64) | |||||
password_hash | DATETIME | |||||
user_id | VARCHAR(64) | users(id) |
CREATE TABLE devices (id INTEGER NOT NULL, lab VARCHAR(64), name VARCHAR(64), time DATETIME, user_id VARCHAR(64), PRIMARY KEY (id), FOREIGN KEY(user_id) REFERENCES users (id)
)
表中实体:
id | device_id | lab | name | time | user_id |
---|---|---|---|---|---|
2 | 2020-QS-002 | 趋势传媒实验室 | 专业VR镜头 | 2020-03-31 22:12:17.000000 | 6 |
3 | 2020-LY-003 | 凌云科技实验室 | 专业VR镜头 | 2020-03-15 02:36:25.000000 | 6 |
4 | 2020-MX-004 | 盟新传媒实验室 | 联想启天2100 | 2020-03-16 23:44:42.000000 | 1 |
5 | 2020-CH-005 | 创汇网络实验室 | DSP实验箱 | 2020-01-17 03:29:31.000000 | 8 |
6 | 2020-LT-006 | 联通时科网络实验室 | 功率变换器 | 2020-04-06 07:49:29.000000 | 3 |
7 | 2020-HR-007 | 鸿睿思博网络实验室 | 双踪示波器 | 2020-03-05 00:48:16.000000 | 4 |
8 | 2020-TY-008 | 天益科技实验室 | 联想启天2100 | 2020-03-03 23:57:45.000000 | 11 |
9 | 2020-LY-009 | 凌颖信息信息实验室 | 投影机 | 2020-02-03 20:11:21.000000 | 10 |
10 | 2020-DM-010 | 迪摩科技实验室 | 曙光天阔服务器 | 2020-02-12 20:46:27.000000 | 1 |
11 | 2020-LR-011 | 联软传媒实验室 | 联想启天2100 | 2020-02-21 11:02:09.000000 | 11 |
展示后修改及优化说明
1. 对设备ID进行改进
通常设备编号都有其实际含义,而且通常有使用年限的规定。所以我在展示后对ID进行设计,更加符合实际情况。
id的格式为购置年份-实验室名称前两字的拼音大写字母缩写-设备编号(三位数补全)
其中,提取实验室名称的拼音大写字母缩写,我通过利用xpinyin包来完成。
页面中显示的“设备编号”为人为构造的“设备id”,区别于数据库表中自动生成的id。
2. 删除设备时进行安全性提示
因为增加了删除设备这一附加功能,而设备删除是一个具有安全隐患的操作。为了避免发生误操作的情况,在点击“删除”按钮后系统会提示“确定要删除吗?”,此时只有点击”确定“时才会执行删除操作。
整体效果及操作流程
1. 登录页面:
如果输入错误密码:
如果输入非管理员账号:
2. 查看设备列表:
为了批量生成数据,使用python中的faker包来生成不同类型和格式的随机数据来模拟真实情形
其中,设定系统的管理员拥有顶级权限,即可以管理设备购置记录,并且我这里附加了一个功能:其本身购置的设备记录用红色背景标出,表明其重要性。
3. 增加设备:
这里对输入数据进行合法性验证:
设备名不能为空/长度超出32个字符
购置人必须是数据库中的用户,这里主要是为了确保我们拥有购置人的详细信息(比如说邮箱等),否则我们无法确认购置人的身份、无法联系到他。
4. 删除设备:
这里考虑了可能有设备废弃或者是转让,需要删除设备的情况。
拥有顶级权限的管理员本人购置的设备无法删除。
5. 关键词搜索:
6. 注销:
完成操作后点击注销,即可退出登录,此时返回登录页面,因为之前选择了记住密码,下次可直接登录。
资源下载地址:https://download.csdn.net/download/sheziqiong/85709920
资源下载地址:https://download.csdn.net/download/sheziqiong/85709920
基于Python3+Flask+SQLite的大学实验室设备管理系统相关推荐
- 基于B/S架构的大学寝室管理系统
技术:Java.JSP等 摘要: 现今大学校园内的学生宿舍,信息管理起来还采用人工操作,及其的繁琐而且效果很差,常常会出现信息错误和缺失等现象,而且宿舍信息不仅仅只是一个寝室号而已,还包括了许多相关信 ...
- 基于JAVA+SpringMVC+Mybatis+MYSQL的实验室设备管理系统
项目介绍: 该系统总共分为四大模块:用户管理.实验室管理.实验室设备管理.通知管理 (1)用户管理 系统管理员对于用户可以对其相关信息进行查看.编辑.删除.系统管理员也可以创建用户.为其分配权限. ( ...
- linux基于Python3的flask服务器配置
在ubuntu12.04中以源码编译方式安装Python3.5.2.tgz,并在Python3中安装flask Web服务器. (1)编译Python3.5.2.tgz,使得ubuntu12.04也能 ...
- 基于Javaweb实现实验室设备管理系统
项目编号:BS-XX-013 本项目基于JSP/Servlet技术实现开发,开发工具采用IDEA或ECLIPSE,数据库采用MYSQL数据库. 首次使用,需要进入src/com/util/DBOK 修 ...
- jsp70860基于web的大学教室管理系统
本大学教室管理系统是针对目前大学教室管理的实际需求,从实际工作出发,对过去的大学教室管理系统存在的问题进行分析,结合计算机系统的结构.概念.模型.原理.方法,在计算机各种优势的情况下,采用目前最流行的 ...
- asp毕业设计—— 基于asp+access的实验室设备管理系统设计与实现(毕业论文+程序源码)——实验室设备管理系统
基于asp+access的实验室设备管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的实验室设备管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...
- 基于java jsp的大学教室管理系统
大学教室管理系统采用了java的web技术servlet进行开发,基于B/S架构模式,以Myeclipse为开发平台,mysql为数据库,jsp为开发语言制作而成.并且文档方面包括,任务书,开题报告, ...
- 【毕业设计源码】基于微信小程序的校园活动管理系统的设计与实现
目录 一.程序介绍: 三.文档目录: 四.运行截图: 五.数据库表: 六.代码展示: 七.更多学习目录: 八.互动留言 一.程序介绍: 文档:开发技术文档.参考LW.答辩PPT,部分项目另有其他文档 ...
- 大学社团管理系统-毕业论文
2020届本科生毕业论文 存档编号 湖北文理学院 毕 业 论 文 论文题目: 大学社团管理系统 学 院: 计算机工程学院 ...
最新文章
- 外网远程桌面连接设置
- 180615-精度计算BigDecimal
- 查看服务器硬盘负载——判断硬盘是否为瓶颈
- 尝试jquery插件的开发
- oracle的split函数
- 软件测试的特殊字符包含什么,测试常见的特殊字符集及接口测试中的测试字符...
- java epoll select_春招|Java开发实习面经(口头offer),感谢快手给我这个双非一次机会!...
- 【爬虫、算法】基于Dijkstra算法的武汉地铁路径规划!
- 【职场】什么是 “职场PUA” ?
- Mockito匹配器优先
- excel连接mysql 数据库
- VS调试启动编辑并继续功能
- 大数据— Hadoop
- 2019.8.6原型链与继承
- app图标圆角角度_iOS和安卓APP启动图标的尺寸和圆角大小详解
- 对话 | AI、机器学习在材料科学研究中能发挥哪些作用?
- 【历史上的今天】5 月 6 日:第一台实际运行程序的计算机;Adobe 转型云端;首个非拉丁文网址出现
- 华为鸿蒙系统小窗口,mate30pro升鸿蒙后小窗应用调不出来
- 图像的形态学处理总结
- oracle区块链开源项目,区块链Oracle原理及实现
热门文章
- 凌华运动控制卡AMP_204C_Qt C++调试
- 如何批量下载美拍作者页短视频
- 【Quartus II 17.0 VWF仿真设置】
- 基于PHP+MySQL的电影网站的设计与开发
- locust2.0+教程:005 - on_start和on_stop
- 〖Python零基础入门篇⑪〗- Python中的字符串类型及应用
- 云计算这条赛道上 腾讯云正在加速度超越
- abp是什么_ABP新闻的完整形式是什么?
- 艾美捷CD8α体内抗体特异性及相关研究
- Matnote_2_数据的同质性 Data Homogeneity