课程管理
接下来开发一个课程管理功能,用于管理和显示学生课程的
数据库
先设计一下课程数据表,命名为 course,字段(课程名称、课程编号、课程描述、课时、任课老师)

课程页面
在前端的项目目录下的/manage下创建一个Course.vue
1 | <template> |
1 | import { createRouter, createWebHistory } from "vue-router"; |
1 | <template> |

课程查询 api
Course 实体类定义
在项目目录/model下创建一个course.py
1 | # -*- coding:utf-8 -*- |
课程管理 Api 接口
courseApi
在项目目录/api下创建一个courseApi.py
1 | # -*- coding:utf-8 -*- |
需要在/api/__init__.py下增加 courseApi
1 | # -*- coding:utf-8 -*- |
courseService
在项目目录/service下创建一个courseService.py
1 | # -*- coding:utf-8 -*- |
分页插件
在项目路径的/common下创建一个pageHelper.py
1 | # -*- coding:utf-8 -*- |
测试

可以发现,请求是成功的,但就是没数据,因为数据库里面是空的,给数据库中插入数据

再次使用 postman 测试一下

增删查改实现
数据分页
前端这块需要调用分页查询的请求接口,并将结果显示出来
1 | <template> |

虽然可以显示一部分数据,但是这个换页有问题,不显示后续跳转的页面按钮
需要绑定一下这两个值

同时还需要,在换了页面之后也重新刷新一下数据,触发 current-change

1 | <template> |


分页成功实现了
查询和重置
为了依据课程名称实现筛查的功能,需要传递一个name字段传给后端进行数据库层面的模糊查询
重置按钮要将查询的内容清空,同时显示回完整的数据
前端
1 | <template> |
后端
1 | # -*- coding:utf-8 -*- |
1 | # -*- coding:utf-8 -*- |
测试


查询扩展
当需要筛选的字段不只是课程名称时,需要怎么处理;比如加上课程编号、任课教师进行多条件模糊查询
前端
1 | <template> |
后端
1 | # -*- coding:utf-8 -*- |
1 | # -*- coding:utf-8 -*- |
1 | # -*- coding:utf-8 -*- |
测试


新增
下面实现给课程表新增数据的功能,需要点击新增按钮后,出现弹窗
在官网找一个Dialog组件

前端
1 | <template> |
后端
1 | # -*- coding:utf-8 -*- |
1 | # -*- coding:utf-8 -*- |
1 | # -*- coding:utf-8 -*- |
1 | # -*- coding:utf-8 -*- |
1 | # -*- coding:utf-8 -*- |
测试


编辑
点击数据中的编辑按钮可以对已有的课程数据,进行修改
前端
1 | <template> |
后端
1 | # -*- coding:utf-8 -*- |
1 | # -*- coding:utf-8 -*- |
1 | # -*- coding:utf-8 -*- |
实现给对象的属性更新的一个方法,在项目目录/common下,新建一个utils.py
1 | # -*- coding:utf-8 -*- |
1 | # -*- coding:utf-8 -*- |
1 | # -*- coding:utf-8 -*- |
测试


删除
点击已有课程数据中的删除按钮,实现删除数据表中对应数据
前端
1 | <template> |
后端
1 | # -*- coding:utf-8 -*- |
1 | # -*- coding:utf-8 -*- |
测试
先创建一个课程

然后删除

删除成功

更新: 2024-05-03 22:02:17
原文: https://www.yuque.com/zacharyblock/iacda/lsqxkzaok37g7aaz