【班级管理】创建Grade模型并配置后台
本节课我们将开始创建应用。在之前的课程中,我们已经分析了我们的应用主要包括五个部分:班级、学生、老师、成绩和用户。
创建应用
首先,我们需要关闭当前服务,按下Ctrl+C即可。接下来,通过命令python manage.py startapp来创建应用。如果你忘记命令,可以使用--help查看所有可用命令,其中startapp就是创建应用的命令。
我们依次创建vscode终端创建五个应用,分别命名为grades、teachers、students、scores和accounts。代码如下:
python manage.py startapp grades
python manage.py startapp students
python manage.py startapp teachers
python manage.py startapp scores
python manage.py startapp accounts
创建成功后,在目录结构中会新增对应的文件夹,每个文件夹下都有相应的文件。如下图所示:
编写模型
我们先编写班级应用的模型,也就是将我们的数据表Grade的表字段用ORM的形式来进行编写。
grade_name (班级名称): 字符串字段,最大长度为120个字符,必须是唯一的,用来存储班级的名称。
grade_number (班级编号): 字符串字段,最大长度为10个字符,必须是唯一的,用来存储班级的编号。
在grades应用(文件下)的models.py文件中,定义一个名为Grade的模型类,并继承自models.Model。这个模型包含两个字段:grade_name(班级名称)和grade_number(班级编号),它们都是字符串类型,且具有唯一性。代码如下:
# grades/models.py
from django.db import models
class Grade(models.Model):
# 班级名称,长度最大为50,必须唯一,显示名称为“班级名称”
grade_name = models.CharField(max_length=50, unique=True, verbose_name="班级名称")
# 班级编号,长度最大为10,必须唯一,显示名称为“班级编号”
grade_number = models.CharField(max_length=10, unique=True, verbose_name="班级编号")
# 定义对象的字符串表示,返回班级名称
def __str__(self) -> str:
return self.grade_name
class Meta:
# 指定数据库表名为“grade”
db_table = "grade"
# 在Django后台显示名称为“班级”
verbose_name = "班级"
# 在Django后台复数显示名称为“班级名称”
verbose_name_plural = "班级名称"
数据库迁移
编写完模型后,需要执行数据库迁移操作。在vscode终端中执行以下命令:
python manage.py makemigrations
python manage.py migrate
这里提示一个警告:
WARNINGS:
?: (staticfiles.004) The directory 'static' in the STATICFILES_DIRS setting does not exist.
No changes detected
这里没有static这个文件夹,所以我们新建一个static文件夹,注意新建的时候,它是在项目的同级目录下,如下图所示:
接下来我们在config文件夹中的settings.py文件中的INSTALLED_APPS中添加了所有创建的应用,如grades、teachers、students、scores和accounts。
接下来我们继续在在vscode终端中执行以下命令:
python manage.py makemigrations
python manage.py migrate
这次才真正的应用到了我们数据库中,回到Navicat数据库管理软件中,进行刷新,mysql数据库就新增了一个grade表。如下图所示:
这个grade表它会有三个字段,ID是默认的主键,我们自己定义的两个字段,一个grade name,一个grade number。如下图所示:
注册模型到后台
完成上述步骤后,在vscode终端中重新启动Django服务:
python manage.py runserver
服务正常启动,我们在浏览器地址栏中输入127.0.0.1:8000/admin来访问后台。在后台可以看到grades应用,并可以进行班级的添加、删除、编辑和查询。如下图所示:
这样我们就了解了如何创建Django应用、编写模型、进行数据库迁移以及在后台管理应用。希望大家通过实践掌握这些基础操作
领取专属 10元无门槛券
私享最新 技术干货