任务清单¶
本文档列出所有你需要在 Django 小作业中做的任务。
环境配置¶
我们使用 Linux(或 WSL)环境与 Python=3.11 配置本次作业,推荐你使用 conda 创建一个新的虚拟环境:
1 2 | |
在此环境的基础之上,你可以运行下述命令安装依赖,注意请确保你的当前工作路径在克隆的小作业仓库中:
1 | |
配置环境也是软件工程的一部分
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科,而配置环境是任何工程化项目的第一步。在本次作业中,我们使用了 conda 作为环境管理工具,使用了 pip 作为依赖管理工具。这些工具的使用都是为了让你能够更加方便地配置环境,从而更加专注于实现功能。在大作业中,你也会使用到类似的工具,因此请务必熟悉这些工具的使用方法。
然后,你可以运行如下指令检查环境配置是否成功:
1 | |
这会在 localhost:8000 开启服务端进行监听网络请求。你可以打开浏览器,访问 http://localhost:8000/startup 来检查服务端是否正常启动。如果正常启动,你会看到含有 "Congratulations! You have successfully installed the requirements. Go ahead!" 的网页。
代码阅读¶
快速阅读提供的代码框架,试着回答以下问题:
- 本次作业的顶层项目名是什么?其下有哪些应用?
utils中的四个文件中的功能函数的输入、输出分别是什么?CheckRequire装饰器的作用是什么?
API 文档
下面的任务推荐你对照着 API 文档完成。
添加路由¶
在 board/urls.py 中:
-
为
boards/<index>API 添加路由到views.boards_index视图函数- 注意这里不要写成
<int:index>,因为 API 文档里规定对于不是 int 的情况也要返回合法的 JSON 请求,而非展示 Django 的默认 404 网页
- 注意这里不要写成
-
为
user/<userName>API 添加路由到下面“添加视图函数”节中自定义的视图函数
补全模型¶
在 board/models.py 中:
- 补全
Board类的成员id,使用 BigAutoField,设置主键user,外键连接到User类,使用级联删除board_state,使用 CharFieldboard_name,使用 CharFieldcreated_time,使用 FloatField,初始值为类创建时的时间
- 补全
Board表的元数据- 为
board_name创建索引 - 在
user和board_name上建立联合唯一约束
- 为
之后,你应该使用如下命令建库:
1 | |
补全与添加视图函数¶
在 board/views.py 中:
- 按照所给注释补全
login登录函数 - 阅读 API 文档中的对应项,然后补全
check_for_board_data中的检查输入字段功能 - 按照所给注释补全
boards视图函数 - 阅读 API 文档中的对应项,完成
boards_index的 DELETE 方法 - 阅读 API 文档中的对应项,完成
user/<userName>API 所对应的视图函数
进行单元测试¶
我们为你撰写的脚本 test.sh 包含了进行单元测试与计算覆盖率的功能。如果你只想运行单元测试,你可以运行:
1 | |
正确完成本次作业应该可以通过所有测试点。在小作业中你可以阅读 board/tests.py 中的测试逻辑对你的路由、模型与视图函数进行修改,但请不要修改 board/tests.py 中的内容。在后续的项目中 tests.py 将由组内负责测试与质量保证的同学进行撰写。