内容正文:
第12章 PyQt6实现“援心”心理测试系统实战
需求分析
数据库设计
PyQt6 GUI界面设计
系统总体设计
系统详细设计
PyInstaller打包程序
熟悉项目的设计流程
掌握面向对象程序设计方法
熟悉PyQt6模块中控件的基本使用方法
熟悉SQLite数据库的基本使用方法
学 习 目 标
LEARNING OBJECTIVES
初心至善 匠心育人
12.1
需求分析
初心至善 匠心育人
目录
Contents
12.1 需求分析
“援心”是一款心理测试系统,学生在系统中进行抑郁症自测,了解自己的心理状态,如果测试结果是有抑郁倾向的,则可以选择心理教师进行辅导。心理教师对选择自己的学生进行心理辅导,并提出咨询建议。
打开系统时,出现登录界面,用户通过用户名和密码进行登录。
如果用户是管理员,则进入用户管理界面,管理员可以对系统中的用户进行管理,添加、编辑或者删除用户。
如果用户是学生,则进入心理自测界面,学生可以进行心理测试,选择心理辅导教师,查看自己已测的记录,还可以修改密码。
如果用户是教师,则进入心理辅导界面,可以对选择自己的学生进行心理辅导,填写咨询建议,也可以修改密码。
初心至善 匠心育人
12.1 需求分析
系统的功能列表
初心至善 匠心育人
12.2
数据库设计
SQLite数据库简介
SQLite数据库的基本语法
SQLite数据库的基本操作
项目数据库设计
使用Python操作SQLite数据库
初心至善 匠心育人
目录
Contents
12.2 数据库设计
12.2.1 SQLite数据库简介
数据库是长期存储在计算机内有组织、可共享的大量数据的集合,关系型数据库包括SQLite、Microsoft Access、MYSQL等,非关系型数据库(一般指NoSQL)包括Redis、Amazon DynamoDB等。其中SQLite是轻量级、基于磁盘文件的数据库管理系统,它无需在系统中进行配置,自给自足,不需要任何外部的依赖,而且每个数据库完全存储在单个跨平台的磁盘文件中。由于SQLite的以上特点,本项目选用它进行数据管理。
初心至善 匠心育人
12.2 数据库设计
12.2.1 SQLite数据库简介
数据库的可视化展示会运用数据库管理工具Navicat。使用Navicat创建一个SQLite数据库mental_test.db。
初心至善 匠心育人
12.2 数据库设计
12.2.2 SQLite数据库的基本语法
SQLite数据库中的语句不区分大小写,GLOB和glob除外,因为它们有不同的含义。SQLite数据库的单行注释以“--”为标志,多行注释以“/*”开始,以“*/”为终止,语句之间以英文分号“;”作为结束标志。存储在SQLite数据库中的值,可以分为5个存储类。
存储类 说明
NULL 存储一个NULL值
INTEGER 存储一个带符号的整数
REAL 存储一个浮点值
TEXT 存储一个文本字符串,编码格式为UTF-8、UTF-16BE或UTF-16LE
BLOB 存储一个blob数据,根据它的输入进行存储
SQLite中没有单独存储日期或者时间的存储类,可以将日期和时间存储为TEXT类型,存储格式为“YYYY-MM-DD HH:MM:SS.SSS”
初心至善 匠心育人
12.2 数据库设计
12.2.3 SQLite数据库的基本操作-创建表
CREATE TABLE database_name.table_name(
column1 datatype PRIMARY KEY(one or more columns),
column2 datatype,
column3 datatype,
.....
columnN datatype,
);
通过CREATE TABLE语句可以创建表
database_name为数据库名称,如果已经指定了,则可以省略。table_name表示新表的名称,columnN表示列名,datatype表示数据类型,PRIMARY KEY表示主键,唯一表示数据库表中的每条记录,其所约束的列中的值必须唯一且不能为NULL。
初心至善 匠心育人
12.2 数据库设计
12.2.3 SQLite数据库的基本操作-创建表
创建一个用户表user,包含列id(用户名)、password(密码)、role(角色),其中id作为主键。
CREATE TABLE user (
id TEXT PRIMARY KEY NOT NULL,
password TEXT,
role TEXT
);
初心至善 匠心育人
12.2 数据库设计
12.2.3 SQLite数据库的基本操作-删除表
通过DROP TABLE可以删除表
DROP TABLE