Django 小实例S1 简易学生选课管理系统 —— 三、创建用户模型(model)

django学校教务管理系统(源码+mysql+论文) 提高教务管理效率:通过学校教务管理系统,可以实现学生、教师、课程等信息的快速录入、查询、修改和删除,大大提高了教务工作人员的工作效率。在数据库管理工具的选择上,使用了Navicat 11,这是一个用户友好且功能强大的数据库管理软件,它支持多种数据库系统,包括MySQL,并提供了图形化界面,使得数据库的管理和维护工作更加便捷。开发环境方面,我们选择了PyCharm作为主要的集成开发环境(IDE),它提供了丰富的Python开发工具和插件,支持Django框架,有助于提高开发效率和代码质量。 阅读详情

作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师。

python Django实现的一个简易的教务选课系统。
介绍与演示的视频版本已发到我的b站: https://www.bilibili.com/video/BV1er4y1w7ty。
项目已上传到我的github: https://github.com/BigShuang/SimpleStudentCourseManagementSystem。

S1总目录:

〇、初步介绍与演示
一、项目流程梳理与数据库设计
二、新建项目(project)、设置、运行
三、创建用户模型(model)
四、实现登录页面
五、实现注册功能

======================= 大爽歌作,made by big shuang =======================

三、创建用户模型(model)

本文涉及到的新的额外知识点:models
没有这部分基础的读者,建议一边阅读本文一边查阅相关知识
这里推荐我的专栏:Django自学笔记 第四章内容

数据库表的设计已在本专栏之前的博客做好了:一、项目流程梳理与数据库设计

这里对于用户模块,需要学生表和教师表,
那么对应的,这里需要建立两种模型:学生(Student),教师(Teacher)
模型的添加和修改要在对应app的models.py中进行

首先,打开项目下的./user/models.py文件
其初始内容如下:

from django.db import models

# Create your models here.

其中第一行导入了models类,如果你的models.py文件没有导入,请添加这一行

同时开始添加自己的模型代码后,最好把第三行的注释删掉

1 添加学生模型

在models.py中添加如下代码即可

class Student(models.Model):
    gender = [
        ("m", "男"),
        ("f", "女")
    ]

    name = models.CharField(max_length=50, verbose_name="姓名")
    gender = models.CharField(max_length=10, choices=gender, default='m', verbose_name="性别")
    birthday = models.DateField(verbose_name="生日")
    email = models.EmailField(verbose_name="邮箱")
    info = models.CharField(max_length=255, verbose_name="个人简介", help_text="一句话介绍自己,不要超过250字")

    grade = models.CharField(max_length=4, verbose_name="年级")
    number = models.CharField(max_length=6, verbose_name="年级子学号")
    password = models.CharField(max_length=30, verbose_name="密码")

    class Meta:
        constraints = [
            # 复合主键:保证 grade和number组合的student_id唯一
            models.UniqueConstraint(fields=['grade', 'number'], name='student_id'),
        ]

    def get_id(self):
        return self.grade + self.number

    def __str__(self):
        return "%s (%s)" % (self.grade + self.number, self.name)

说明:学生年级号为4位数字组成的字符串,年级下子学号为6位数字组成的字符串。
这两个连接起来组成学生的唯一学号,该学号也为其登录使用的账号。

比如学生李大爽,年级号为"2020",子学号为"000001",其学号为"2020000001"。

2 添加老师模型

在models.py中继续添加如下代码即可

class Teacher(models.Model):
    genders = [
        ("m", "男"),
        ("f", "女")
    ]

    name = models.CharField(max_length=50, verbose_name="姓名")
    gender = models.CharField(max_length=10, choices=genders, default='m', verbose_name="性别")
    birthday = models.DateField(verbose_name="生日")
    email = models.EmailField(verbose_name="邮箱")
    info = models.CharField(max_length=255, verbose_name="教师简介", help_text="不要超过250字")

    department_no = models.CharField(max_length=3, verbose_name="院系号")
    number = models.CharField(max_length=7, verbose_name="院内编号")
    password = models.CharField(max_length=30, verbose_name="密码")

    class Meta:
        constraints = [
            # 复合主键:保证 grade和number组合的student_id唯一
            models.UniqueConstraint(fields=['department_no', 'number'], name='teacher_id'),
        ]

    def get_id(self):
        return self.department_no + self.number

    def __str__(self):
        return "%s (%s)" % (self.department_no + self.number, self.name)

说明:老师院系号为3位数字组成的字符串,院内编号为7位数字组成的字符串。
这两个连接起来组成老师的唯一教师号,该教师号也为其登录使用的账号。

比如老师牛有力,院系号为"266",院内编号为"0000001",其教师号为"2660000001"。

3 建立(更新)数据库

在django框架下,并不是添加好模型(model)就万事大吉了
添加好模型后,我们还需要手动执行脚本,才能根据模型生成对应的数据库表。
在项目文件夹下,打开命令行,按行依次执行:

python manage.py makemigrations
python manage.py migrate

解释下上面这两句的作用
其中第1句会生成对应的迁移(migrations)命令。
具体到本项目,由于是第一次运行,
那么会在./user/migrations文件夹下,
生成0001_initial.py用于记录迁移(migrations)命令
第一次运行也会在项目文件夹下,生成一个空的 database:db.sqlite3
第2句会执行第一句中生成的迁移(migrations)命令。
执行完第二句,改动才真正更新到数据库文件了。
对应到本项目,就是数据库中添加了两个模型(学生、老师)对应的数据库表。

当然,实际上,数据库中的改动并不是简单的添加了这两个模型的事,有兴趣的朋友可以打开此时的db.sqlite3看看。无法直接打开,需要使用对应的软件,我一般用DB Browser (SQLite),里面生成了很多个表,不过这个细说起来就复杂了。

以后我们如果修改了模型的属性之类,也要执行上面两句脚本去更新对应的数据库表。

django基于web的教务管理系统的设计与实现(程序+开题报告) 本系统(程序源码数据库调试部署开发环境)带文档lw万字以上,文末可获取系统程序文件列表开题报告内容研究背景: 随着信息技术的飞速发展,互联网已经成为人们获取信息、交流沟通的重要渠道。在教育领域,基于Web的教务管理系统已经成为了一种趋势。传统的教务管理方式存在着效率低下、信息传递不及时等问题,而基于Web的教务管理系统可以有效地解决这些问题。通过互联网,教师、学生和管理人员可以随时随地进行信息查询、交流和管理工作,大大提高了教务管理的效率和便捷性。 阅读详情

相关推荐

django教务管理系统(程序+开题报告)

研究目的: 本研究的主要目的是设计并实现一款功能全面的教务管理系统,包括学生信息管理、教师信息管理、课程信息管理、课程类型管理、选课信息管理、课程成绩管理、班级信息管理、学院信息管理和教务公告等功能模块。通过对系统的需求分析、设计、实现和测试,最终开发出一款稳定可靠、易于使用的教务管理系统,为学校提供有效的教务管理工具。[7] 陈佳佳, 邱晓荣, 熊宇昊, 段莉华. 基于Python的人脸识别技术研究[J]. 电脑知识与技术, 2023, 19 (08): 34-36+39.最终成品以下面运行环境。

宇立毕设程序 1024

Python Django MySQL的教务系统的设计与实现

教务系统分三大部分,即管理员管理、教师管理和学生管理。从管理员出拿到分配好的账号密码可以进入系统,使用相关的系统应用,管理员权限最大,其次的教师和学生。系统整体模块设计:系统分为管理员、教师和学生三大用户角色,系统管理员有最大的权限,整体功能展示如图2-1所示。

欧阳小白闯天涯 984

基于Django的教务信息管理系统源码

基于Django的教务信息管理系统源码,能实现基本的登录注册和增删查改、学生选课退课和管理员管理课程等功能。

Python 21 Django 实用小案例1

实用案例 验证码与验证   KindEditor 组合搜索的实现   单例模式 beautifulsoup4 验证码与验证 需要安装Pillow模块 pip stall pillow 1、首先需要借助pillow模块用来画一个验证码图形,这里单独封装了一个py文件,调用一个方法就好了 1 #!/user/bi...

weixin_30493401的博客 202

Vmware虚拟机一打开就蓝屏解决方法

Vmware虚拟机一打开就蓝屏解决方法 问题: 一打开Vmware虚拟机就蓝屏,如下图所示: 解决方法1: 启用和关闭windows功能(对话框)——>虚拟机平台(选项打对勾,默认没勾选)——>确定后重启——>再进应该就好了。 解决方法2: ①.查看电脑中的Hyper-V服务是否关闭 1.打开控制面板-程序-程序和功能 2.双击启用或关闭Windows功能 3.把Hyper-V前面的勾去掉 如果后期发下没有反应,或者电脑本身Hyper-V的服务没有打开,可以先打开在关闭,试

m0_55901666的博客 26万+

手把手教你用Ubuntu 22.04的附加驱动工具安装NVIDIA显卡驱动(含常见错误修复)

本文详细介绍了在Ubuntu 22.04系统上,如何通过图形化的“附加驱动”工具安全、便捷地安装NVIDIA显卡驱动。内容涵盖从准备工作、禁用默认的nouveau驱动、图形界面安装实操,到安装后的验证(如使用nvidia-smi命令),并提供了安装失败黑屏、亮度调节失效等常见问题的深度解决方案,帮助用户彻底搞定驱动安装难题。

weixin_29248653的博客 602

[Python+Django]Web学生及教务管理系统之数据库及系统实现

今天带来的是之前帮粉丝做的Python+Django 实现的Web学生信息及教务管理系统 关于环境和软件安装请参考下文: 关于如何快速利用Python + Django完成毕业设计请参考: 以下正文: 学生及教务管理系统,主要包含如下几个功能模块: 学院管理,专业管理,班级管理,课程管理,教师管理,学生管理,成绩管理,用户登录注册 系统设计及实现思路 系统设计包括三部分:数据库设计,前端页面设计,功能函数视图设计 ......

李威威wiwi的博客 3252

中国高精度年度平均气温栅格数据集(1901-2024)

本文基于中国月度平均气温栅格数据集,计算生成1901-2024年1km分辨率的年度平均气温数据集,并按中国省市行政区划进行裁剪。该数据集融合CRU全球数据和WorldClim高分辨率数据,经496个站点验证,具有高时空精度和长时间序列特点,覆盖全国(含港澳台)逾百年气温记录,为气候变化研究、生态水文分析及农业生产评估等提供重要数据支撑。数据格式为Tif,单位为0.1℃,可获取全国、各省及各市三个尺度的气温栅格数据。

PPdata_Academy的博客 1244

Django 小实例S1 简易学生选课管理系统 —— 四、实现登录页面

python Django实现的一个简易的教务选课系统。 介绍与演示的视频版本已发到我的b站: https://www.bilibili.com/video/BV1er4y1w7ty。 项目已上传到我的github: https://github.com/BigShuang/SimpleStudentCourseManagementSystem。 S1总目录: 〇、初步介绍与演示 一、项目流程梳理与数据库设计 二、新建项目(project)、设置、运行 三、创建用户模型(model) 四、实现登录页面 .

大爽老师的博客 2978

基于 STM32 的便携式肌电信号采集与疲劳度评估系统设计与实现

本系统以 STM32 单片机为核心控制器,通过肌电电极采集人体骨骼肌表面的 sEMG 信号,经仪表放大、滤波、AD 采样后送入 MCU 进行时域 / 频域特征提取,利用 RMS(均方根)、MPF(中位频率)、MF(平均频率)等指标实时评估肌肉疲劳状态,最终通过 OLED 显示疲劳等级,并支持蓝牙上传至上位机。

weixin_42300449的博客 105

【Bug已解决】Auto mode cannot determine the safety of an action — Claude Code 自动模式安全判断失败解决方案

将已知安全的操作添加到白名单,分类器不再拦截这些操作。# 步骤 1:编辑 Claude Code 配置"Read","Write"EOF# 步骤 2:白名单中的操作将自动通过# 不在白名单中的操作仍需分类器判断# 步骤 3:重启 Claude Codeclaude方案适用场景推荐指数难度方案一:手动审批偶发回退,安全优先⭐⭐⭐⭐⭐低方案二:/compact 压缩上下文超限导致⭐⭐⭐⭐低方案三:拆分步骤复杂操作触发⭐⭐⭐⭐低方案四:跳过审批隔离环境,CI/CD。

博客 1万+

数据库课程设计实战指南:从E-R图到SQL实现与项目开发

数据库系统是信息管理的核心,其设计遵循从概念模型到物理实现的完整流程。E-R图作为概念设计的关键工具,用于抽象现实世界实体与关系,而关系模型与范式理论则指导逻辑结构的规范化,确保数据一致性与减少冗余。在工程实践中,掌握SQL语言进行数据定义与操纵是基础能力,结合具体DBMS(如MySQL、SQL Server)的特性实现物理设计。课程设计作为综合实践环节,其技术价值在于将理论知识转化为解决实际业务问题的能力,例如构建学生选课、电商或工资管理系统。通过需求分析、E-R设计、SQL编写及前端集成,学生能深入理解

weixin_33889245的博客 608

智慧安防:基于Java+YOLOv8的视频AI识别平台设计与实现

张工,我们的园区智慧安防项目又出问题了!用Python写的YOLOv8 demo,拉3路RTSP流就卡,视频延迟超过5秒,入侵检测误报率太高,一到晚上光线差就全是误报,而且和我们的Java安防平台对接太麻烦,还要搭个消息队列,架构复杂得要死!“别慌,用Java+YOLOv8啊!

2601_94871597的博客 196

学生选课系统完整UML建模

UML系统分析设计与建模 -----------学生选课系统  以简单的学生选课系统进行详细的系统分析与建模。 (一)系统用例图 1.首先根据需求分析可知:管理员维护课程信息,对其进行添加、修改、删除等。学生可以在线查询课程信息,并进行选课,也可以在规定时间内更改选修的课程。我们发现系统中的参与者有:管理员和学生,然后从参与者的角度就可以发现系统的用例,并绘制出系统的用例图,如图1所示:

CatTalk 19万+

在Simulink中实现一个基于SiC MOSFET的高效率电机驱动系统

本文介绍了在Simulink中构建基于SiC MOSFET的高效率电机驱动系统的详细流程。系统由直流电源模块、SiC MOSFET逆变器模块、PMSM电机模型、控制策略模块(包括矢量控制和PWM生成)以及反馈测量模块组成。文章逐步指导了从模型创建到参数设置的完整过程,包括各模块的具体实现方法。通过仿真可以评估系统在不同负载条件下的响应速度、效率、功率密度等性能指标。该建模方法为电机驱动系统的设计和优化提供了有效工具,同时建议根据实际硬件规格和工程需求进行参数调整和定制化开发。

xiaoheshang_123的博客 249

STM32实战开发(121):基于STM32的智能电导率检测系统设计与实现

STM32系列是由意法半导体(STMicroelectronics)推出的32位微控制器。STM32系列基于ARM Cortex-M处理器架构,具有高性能、低功耗、丰富的外设接口和强大的开发支持库。STM32的低功耗特性使其在嵌入式系统中非常受欢迎,特别是在便携式设备和传感器网络中。

2201_76125393的博客 1041

django模型_Django模型

django模型In this tutorial, we’ll get into the details of Django Models. Before we do that, let’s quickly set up our Django Project from the terminal. 在本教程中,我们将详细介绍Django模型。 在此之前,让我们从终端快速设置我们的Django项目。 ...

从零开始的教程世界 420

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Django计算机毕业设计教务管理系统(程序+lw)Python

课程信息管理,在课程信息管理页面可以对索引,课程编号,课程名称,开课时间,上课时间,教室号,课时,学分,院系,授课专业,授课班级,教师姓名,教师工号,更新时间等内容进行详情详情,修改,删除操作,如图5-7所示。教师管理,在教师管理页面可以对索引,教师工号,教师姓名,岗位,性别,籍贯,图片,院系,身份证号,手机号码,邮箱地址等信息进行详情,建立信息表,添加课程,修改,删除操作,如图5-5所示。修改,删除操作,如图5-4所示。4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;

真纯Django毕设程序 271

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python基于django的高校综合教务管理 学生选课系统

高校教务管理系统的主要使用者分为管理员和用户,实现功能包括管理员:首页、注册管理、教师管理、课程管理、选课安排、学生管理,用户:首页、个人资料、我的课程、个人成绩、校内信息,前台首页:首页、公开课、授课教师、授课机构。在引言中,作者将论述高校教务管理的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析设计。1:管理员模块:注册管理、教师管理、课程管理、选课安排、学生管理等功能。2:用户:首页、个人资料、我的课程、个人成绩、校内信息。4.2.1数据库设计规范 11。

QQ55318293的博客 953

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

django教务管理信息系统-毕业设计源码17484

随着高校规模的扩大和教务管理复杂度的增加,传统的手工管理方式已经无法满足现代教务管理的需求。为此,本文提出了一款基于python的教务管理信息系统。系统后端利用基于python语言的Django框架进行开发。Python作为一种流行的编程语言,具有简洁易学、开发速度快、可扩展性强等特点。Python在数据处理、网络编程、自动化运维等方面具有广泛的应用,将其应用于教务管理信息系统,可以有效提高系统开发效率和稳定性。 本文首先阐述了系统的研究背景和意义;然后对系统进行了可行性............

2401_88653928的博客 1823

计算机毕业设计django+vue教务系统设计与实现【开题+程序+论文】

Django作为Python的高性能Web框架,以其快速开发、高效部署和灵活扩展的特点,成为构建教务系统的理想选择。本研究的意义在于,一方面,通过教务系统的设计与实现,可以极大地提升高校教务管理的效率和质量,实现教学资源的优化配置,减轻教务管理人员的工作负担;本研究的主要目的是设计并实现一套基于Django+Vue的教务系统,该系统需具备学生信息管理、教师信息管理、课程类型与课程信息管理、选课与退课管理、学生成绩管理、评教信息管理、班级课表生成、教室信息管理、班级管理以及重考重修通知发布等核心功能。

小许程序设计 796

015python基于Django学生选课系统/高校教务管理系统

21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。论文主要是对学生选课系统进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对学生选课系统进行了一些具体测试。

QQ123311197的博客 1049

django高校教务系统-毕业设计源码81661

系统用户、教室信息管理、课程分类管理、课程信息管理、学生成绩管理、平均分数管理、系统管理、通知公告管理、资源管理等多个模块

DZBS2000的博客 1071

计算机毕业设计django+vue高校教务管理系统【开题+论文+程序】

随着信息技术的飞速发展,高校教务管理工作日益复杂,传统的手工或半自动化管理方式已难以满足高效、精准的管理需求。本研究的意义在于,通过开发一套功能完善、操作简便、数据共享便捷的高校教务管理系统,能够有效提升教务管理的工作效率,减轻教务人员的工作负担,同时为学生提供更加便捷、个性化的服务。该系统通过集成学生信息管理、教师信息管理、班级与课程信息管理、选课与成绩管理、请假与毕业申请管理、通知发布等核心功能模块,实现了教务管理全流程的数字化与自动化,为高校教务管理提供了强有力的技术支持。

sheji303的博客 886

(开题报告)django+vue教务系统设计与实现源码+论文

关于教务系统的研究,现有研究多集中于传统管理模式的优化等方面,专门针对基于django + vue框架构建的教务系统的研究较少。本选题将以高校教务管理为研究情景,重点分析和研究基于django + vue框架构建教务系统的相关问题,以期探寻构建高效、多功能教务系统的机制,提出改进现有教务系统的对策建议,为后续更加深入的研究提供基础。[8] 陈佳佳, 邱晓荣, 熊宇昊, 段莉华. "基于Python的人脸识别技术研究"[J]. 电脑知识与技术, 2023, 19 (08): 34-36+39.

django毕设 729
上一篇: Django 小实例S1 简易学生选课管理系统 —— 二、新建项目(project)、设置、运行
下一篇: Django自学笔记 4-3 模型(models)主键外键
大爽歌
博客等级 码龄9年 422粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值