网站搭建-django-学习成绩管理-02-数据库创建

看不見的法師
发布: 2025-09-20 08:03:07
原创
467人浏览过

本系列将指导您如何使用django框架搭建一个学生成绩管理网站。今天我们将聚焦于创建一个独立的项目应用,主要功能包括学习成绩查询和数据统计分析。我们将使用datatables和echarts作为前端模块。让我们从数据库创建开始讲起。

Part 1:功能描述

整个项目将包含两个网页:

  • 第一个网页:展示一张表格,允许查看所有学生在不同模拟考试中各科目的成绩。
  • 第二个网页:提供单个学生的成绩折线图查询、不同科目成绩的盒形图分布以及成绩排名柱状图。未来可能会增加更多功能。

Part 2:数据库设计

我们将设计两张表:

  • 第一张表用于存放常数项,例如班级、学生姓名、模拟考代号和科目。
  • 第二张表记录每个学生的成绩,包括班级、学生姓名、模拟考信息、科目和成绩。我们假设同一个班级内没有重名的学生。

Part 3:models

代码语言:Python 运行次数:0 运行 复制

from django.db import models

class Constants(models.Model):
    class_name = models.CharField(blank=True, null=True, max_length=10, verbose_name='班级')
    student_name = models.CharField(blank=True, null=True, max_length=10, verbose_name='学生姓名')
    exam_info = models.CharField(blank=True, null=True, max_length=20, verbose_name='模拟考信息')
    course_name = models.CharField(blank=True, null=True, max_length=20, verbose_name='科目')

    class Meta:
        db_table = 'grades_constants'
        verbose_name = "常数项"
        verbose_name_plural = verbose_name

class StudentGrades(models.Model):
    class_name = models.CharField(blank=True, null=True, max_length=10, verbose_name='班级')
    student_name = models.CharField(null=False, default='', max_length=10, verbose_name='学生姓名')
    exam_info = models.CharField(blank=True, null=True, max_length=20, verbose_name='模拟考信息')
    course_name = models.CharField(blank=True, null=True, max_length=20, verbose_name='科目')
    grades = models.FloatField(blank=False, null=False, default=0.0, verbose_name="学习成绩")

    class Meta:
        unique_together = ('class_name', 'student_name', 'exam_info', 'course_name')
        db_table = 'grades_record'
        verbose_name = "学习成绩记录"
        verbose_name_plural = verbose_name
登录后复制

代码截图

网站搭建-django-学习成绩管理-02-数据库创建

models.py:这是编写创建数据库对应代码的地方。

网站搭建-django-学习成绩管理-02-数据库创建

沁言学术
沁言学术

你的论文写作AI助理,永久免费文献管理工具,认准沁言学术

沁言学术 30
查看详情 沁言学术

Part 4:ORM介绍

在过去的工作中,我们可能通过数据库操作软件或SQL语句来创建工作表。在Django项目中,我们通过在models中创建类,然后使用migrate命令来创建对应的数据库。

python manage.py makemigrations
python manage.py migrate
登录后复制

Django采用的是

Object-relational mapper
登录后复制
(ORM)方法,将传统的SQL语句操作转换为对类的操作。简单来说,一个类对应一张表,通过CharField、FloatField等类来创建对应的字段,不同的数据类型有不同的类与之对应。Meta类定义了表名(db_table),并创建了联合约束(unique_together),确保不同记录的四个字段(class_name, student_name, exam_info, course_name)不能完全相同。

makemigrations

网站搭建-django-学习成绩管理-02-数据库创建

migrate

网站搭建-django-学习成绩管理-02-数据库创建

以上就是网站搭建-django-学习成绩管理-02-数据库创建的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号