访问【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 |
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net