一个基于 Django 的学生学籍管理系统 demo,当前代码已经实现主页面学生列表、AI 助手单轮对话确认操作、Django Admin 后台、演示数据初始化和自动化测试。
当前功能包括:
- 主页面展示学生列表
- 学生字段包含:姓名、年龄、宿舍编号、性别、电话、邮箱
- AI 助手支持自然语言增删改查
- AI 助手页面展示当前会话聊天记录
- AI 操作必须先确认,再执行
- 每轮对话只允许处理一条 ORM 操作,执行或取消后必须先开启新对话
- 后台管理使用 Django Admin
- 数据访问统一通过 Django ORM
- 浏览器写操作启用 CSRF 防护
- Python 3.12+(当前本机实现环境为 Python 3.13)
- Django 4.2.7
- Django Ninja 1.0.1
- PydanticAI 1.0.3
- Ollama
- Bootstrap 5
- SQLite
需要本机已安装并可用的模型:
ollama list应能看到:
gpt-oss:120b
当前项目默认通过 OpenAI 兼容接口访问 Ollama,默认模型为 gpt-oss:120b,推荐配置为:
OLLAMA_BASE_URL=http://127.0.0.1:11434/v1
如果你本机还没装这些依赖,可以执行:
python3 -m pip install -r requirements.txt先执行数据库迁移:
python3 manage.py migrate创建默认管理员:
python3 manage.py init_admin初始化演示学生数据:
python3 manage.py seed_students启动 Django 开发服务器:
python3 manage.py runserver启动后访问:
默认管理员账号:
用户名:admin
密码:123456
数据库迁移:
python3 manage.py makemigrations
python3 manage.py migrate系统检查:
python3 manage.py check运行测试:
python3 manage.py test运行真实 Ollama gpt-oss:120b 集成测试:
python3 manage.py test tests.ollama_integration重新初始化管理员:
python3 manage.py init_admin重新初始化演示数据:
python3 manage.py seed_students页面与后台入口:
GET /:学生列表主页面GET /admin/:Django Admin 后台入口
当前 AI 助手相关接口:
用途:
- 提交自然语言指令
- 解析成待确认操作
- 返回当前会话消息流
- 不直接执行数据库变更
请求示例:
{
"prompt": "添加学生李明,年龄24,宿舍B143,性别男,电话13800000000,邮箱liming@example.com"
}用途:
- 对待确认操作执行确认或取消
- 只有确认后才真正执行 ORM 操作
- 返回更新后的会话消息流
请求示例:
{
"action_id": "uuid",
"decision": "confirm"
}用途:
- 开启新对话
- 清空当前会话聊天记录
- 解除“本轮已结束”的输入锁定
- 如当前仍有待确认操作,会先标记为取消
请求示例:
{}manage.py
config/ Django 项目配置
students/ 学生学籍管理应用
templates/ 顶层模板
static/ 静态资源
tests/ 测试文件
specs/001-student-record-ai/ Speckit 产物
- 所有学生数据访问都通过 Django ORM,避免业务层拼接 SQL
- AI 写操作必须先确认,再执行
- AI 接口使用会话绑定,防止跨会话误确认
- AI 执行完成后必须先重置会话,避免旧上下文干扰下一轮
- 浏览器写请求需要 CSRF Token
- Django Admin 与主页面使用同一数据源
已执行并通过:
python3 manage.py check
python3 manage.py test当前测试总数:
49 tests, all passed
真实模型集成测试:
tests.ollama_integration
说明:
- 默认
python3 manage.py test只跑快速单测和业务测试,不直接依赖大模型响应。 python3 manage.py test tests.ollama_integration会真实调用本机 Ollama 中的gpt-oss:120b。