这还是那个简单的选课系统, 只是这次是一个正儿八经的简单后端.
- 建议使用 conda 环境, 新建一个 (或者已有的也行)
python>=3.12环境 - 安装依赖:
pip install -r requirements.txt - 初始化数据库:
python manage.py migrate - 使用标准的 Django 启动模式:
python manage.py runserver
本作业预期实现一个简单的选课系统后端, 具体功能如下:
- 用户登录, 仅需要用户名, 自动注册. (这是为了简单起见, 如果你想练练手, 欢迎自己加上密码)
- 用户登出
- 列出所有课程
- 选课
- 列出已选课程
- 管理员上传课程列表
- 管理员下载所有用户的选课情况
框架中已经实现了部分功能和其它功能的部分. 希望你能够按照提示完成这个系统的剩余部分.
你需要完成的功能全都在 views.py 里面. 但是:
- 我希望你首先能够理解整个框架的结构, 然后再开始编写代码;
- 尤其是
api这个 Decorator, 你需要理解它的作用.
本作业应该不难 (根据 git log 可知我就用了 3h 就把框架整个写完了), 希望大家能从中学到
Django 框架的基本结构和写法, 见微知著, 了解前后端分离开发范式, 了解后端的工程性,
了解文档和注释在项目代码中的重要作用.
这个后端将与 React 的前端配合成为一个完整的简单的选课系统.
大家可以可选地实现以下进阶功能:
- 课程的增删改查
- 用户密码登录
- 基于 JWT 的认证
- 课程的搜索和排序
- 时间冲突的检测
- 管理员查看每个用户的选课情况
- 课程的课余量检查
- ......