访问【WRITE-BUG数字空间】_[内附完整源码和文档]
应用背景
为方便实验室进行设备管理,某大学拟开发实验室设备管理系统 来管理所有实验室里的各种设备。系统可实现管理员登录,查看现有的所有设备, 增加设备等功能。
开发环境
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