CanvasAPI New Quizzes API指南:Python管理Canvas新版测验与考试的完整教程
CanvasAPI New Quizzes API指南Python管理Canvas新版测验与考试的完整教程【免费下载链接】canvasapiPython API wrapper for Instructures Canvas LMS. Easily manage courses, users, gradebooks, and more.项目地址: https://gitcode.com/gh_mirrors/ca/canvasapiCanvasAPI 是一个 Python API 封装库让你无需手写 HTTP 请求就能管理 Instructure Canvas LMS 的课程、用户、成绩册等。本教程聚焦CanvasAPI New Quizzes API如何用 Python 快速创建、查询、更新、删除 Canvas 新版测验New Quizzes并为特殊需求学生批量设置考试 accommodations额外时间、额外次数等。为什么需要 New Quizzes APICanvas 的测验系统分为两代旧版 Quizzes走/api/v1/端点用Quiz对象管理新版 New Quizzes走独立的/api/quiz/v1/端点用NewQuiz对象管理支持题目混排、随机化、实时监考、accommodations 等新能力 在 CanvasAPI 中请求器会自动识别 New Quizzes 端点构造时除了常规base_url /api/v1/还会额外维护一个new_quizzes_url即base_url /api/quiz/v1/源码见 canvasapi/requester.py。你无需关心端点差异方法调用后自动路由到正确地址。快速安装与初始化安装只需一行命令pip install canvasapi初始化一个Canvas对象传入你的 Canvas 站点地址和 API 密钥from canvasapi import Canvas API_URL https://your-canvas-instance.com API_KEY 你的API密钥 canvas Canvas(API_URL, API_KEY)之后所有 New Quizzes 操作都从课程对象出发。核心功能一览New Quizzes 相关方法分为两层全部定义在 canvasapi/course.py 和 canvasapi/new_quiz.py 中层级方法作用调用的端点课程级course.create_new_quiz()创建新版测验POST /courses/:id/quizzes课程级course.get_new_quizzes()获取测验列表分页GET /courses/:id/quizzes课程级course.get_new_quiz(quiz_id)获取单个测验GET /courses/:id/quizzes/:id课程级course.set_new_quizzes_accommodations()课程级批量 accommodationsPOST /courses/:id/accommodations测验级quiz.update()更新测验标题、说明等PATCH测验级quiz.delete()删除测验DELETE测验级quiz.set_accommodations()针对特定测验设置 accommodationsPOST .../accommodations创建新版测验create_new_quiz 用法创建测验时把测验信息放在quiz字典参数中传入course canvas.get_course(123456) new_quiz course.create_new_quiz( quiz{ title: 第一次单元测验, instructions: p祝你好运/p, } ) print(new_quiz) # 输出: 第一次单元测验 (88)返回的是NewQuiz对象自动携带course_id后续直接调用其方法即可不用重复传课程 ID。查询测验get_new_quizzes 与 get_new_quiz获取列表返回分页对象可以像迭代列表一样遍历for quiz in course.get_new_quizzes(): print(quiz.title, quiz.id)获取单个测验支持直接传测验 IDquiz course.get_new_quiz(88) print(quiz.instructions)这两个方法均定义在 canvasapi/course.py列表接口基于 CanvasAPI 的PaginatedList机制测验数量再多也会自动翻页不会漏数据。更新与删除测验更新时只传需要修改的字段updated quiz.update( quiz{ title: 第一次单元测验已修订, instructions: p更新后的说明/p, } )删除测验deleted quiz.delete() print(deleted.title) # 返回被删除的测验对象亮点功能为学生批量设置考试 accommodations这是 New Quizzes 相对旧版的实用能力——为特殊需求学生如残障、考试障碍学生批量设置extra_time额外考试时长分钟extra_attempts额外作答次数reduce_choices_enabled打乱选项顺序降低提示性测验级设置只针对某一场测验response quiz.set_accommodations([ { user_id: 123, extra_time: 30, extra_attempts: 1, reduce_choices_enabled: True, } ]) print(response.message) # Accommodations processed课程级设置对该课程所有新版测验生效response course.set_new_quizzes_accommodations([ {user_id: 456, extra_time: 240}, ])返回的AccommodationResponse对象会告诉你哪些用户设置成功successful、哪些失败failed方便二次处理for ok in response.successful: print(成功:, ok[user_id]) for fail in response.failed: print(失败:, fail)响应对象定义见 canvasapi/new_quiz.py。代码结构速览文件说明canvasapi/new_quiz.pyNewQuiz、AccommodationResponse类定义canvasapi/course.py课程级 New Quizzes 方法canvasapi/requester.py请求器负责/api/quiz/v1/端点路由tests/test_new_quiz.pyNew Quizzes 单元测试tests/fixtures/new_quiz.json接口测试桩数据docs/new-quiz-ref.rst文档源文件常见问题QNew Quizzes 和旧版 Quizzes 能混用吗可以。两者是并行的对象体系旧版用course.get_quizzes()/Quiz新版用course.get_new_quizzes()/NewQuiz方法名都有new_前缀区分互不干扰。Q为什么我的请求 404 了确认 Canvas 实例已启用 New Quizzes 功能且 API 密钥具备相应权限。New Quizzes 走的是独立的/api/quiz/v1/端点权限与旧版 API 分开管理。Q批量 accommodations 部分失败了怎么办检查response.failed列表中的用户 ID通常是该用户未注册进课程或字段名拼写错误必填字段是user_id。总结通过 CanvasAPI 的 New Quizzes API你可以在几行 Python 代码内完成新版测验的创建、查询、更新、删除以及最实用的学生 accommodations 批量设置。核心对象NewQuiz与AccommodationResponse让结果处理清晰可控是 Canvas 院校做考试自动化、特殊教育支持脚本的理想选择 【免费下载链接】canvasapiPython API wrapper for Instructures Canvas LMS. Easily manage courses, users, gradebooks, and more.项目地址: https://gitcode.com/gh_mirrors/ca/canvasapi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考