Django学生管理系统
简介:基于Django自带的Admin后台快速构建一个学生管理系统,并利用simpleUI实现页面的美化
一、创建Django项目
1、在pycharm中使用命令行创建一个Django项目
django-admin startproject studentManage(项目名称)
2、应用的创建
1.通过命令行创建app
python manage.py startapp app(创建的app的名称)
3.注册app
找到setting.py中的 INSTALLED_APPS,在里面添加
'app.apps.AppConfig'
4、创建orm模型
from django.db import models
# Create your models here.
class Teacher(models.Model):
"""
定义一个 Teacher 类,表示一名教师
属性:
name:教师的姓名
major:教师所属的专业
方法:
__str__:返回教师姓名的字符串表示
"""
class Meta:
verbose_name = '教师'
verbose_name_plural = verbose_name
# teacher_id = models.CharField(max_length=20, primary_key=True,verbose_name='工号')
name = models.CharField(max_length=100,verbose_name='姓名')
major = models.ForeignKey(Major, on_delete=models.CASCADE,verbose_name='专业')
def __str__(self):
return self.name
class Student(models.Model):
"""
表示一个学生的模型。
属性:
student_id (str): 学生的ID,作为主键,最大长度为20。
name (str): 学生的姓名,最大长度为100。
class_id (Class): 学生所属的班级,外键关联到 Class 类,当班级被删除时,级联删除学生。
major_id (Major): 学生所属的专业,外键关联到 Major 类,当专业被删除时,级联删除学生。
方法:
__str__: 返回学生姓名的字符串表示。
"""
class Meta:
verbose_name = '学生'
verbose_name_plural = verbose_name
GENDER_CHOICES = [
('1', '男性'),
('2', '女性')
]
student_id = models.CharField(max_length=20, primary_key=True,verbose_name='学号')
name = models.CharField(max_length=100,verbose_name='姓名')
gender = models.CharField(max_length=10, choices=GENDER_CHOICES,verbose_name='性别')
age = models.IntegerField(verbose_name='年龄')
email = models.EmailField(verbose_name='邮箱')
phone = models.CharField(max_length=15,verbose_name='电话')
address = models.TextField(verbose_name='地址')
created_at = models.DateTimeField(auto_now_add=True,verbose_name='创建时间')
updated_at = models.DateTimeField(auto_now=True,verbose_name='更新时间')
class_id = models.ForeignKey(Class, on_delete=models.CASCADE,verbose_name='班级')
major_id = models.ForeignKey(Major, on_delete=models.CASCADE,verbose_name='专业')
def __str__(self):
return self.name
class Grade(models.Model):
"""
表示一个成绩的模型。
属性:
grade_id (int): 成绩的ID,作为主键,自增。
student (Student): 学生,外键关联到 Student 类,当学生被删除时,级联删除成绩。
course (Course): 课程,外键关联到 Course 类,当课程被删除时,级联删除成绩。
score (float): 成绩。
方法:
__str__: 返回学生和课程的字符串表示。
"""
class Meta:
verbose_name = '成绩'
verbose_name_plural = verbose_name
grade_id = models.AutoField(primary_key=True,verbose_name='课程ID')
student = models.ForeignKey(Student, on_delete=models.CASCADE, verbose_name='学生')
course = models.ForeignKey(Course, on_delete=models.CASCADE ,verbose_name='课程')
score = models.FloatField(verbose_name='成绩')
def __str__(self):
return f"{self.student} - {self.course}"
5、在admin.py 中注册模型
from django.contrib import admin
from app.models import Student, Teacher, Grade
class StudentAdmin(admin.ModelAdmin):
# form = StudentForm
list_display = ('student_id', 'major_id', 'class_id', 'name', 'age', 'gender', 'address')
list_filter = ('class_id', 'major_id')
search_fields = ('student_id', 'gender', 'name')
ordering = ('student_id',)
class TeacherAdmin(admin.ModelAdmin):
list_display = ('id', 'name', 'major')
list_filter = ('major',)
class GradeAdmin(admin.ModelAdmin):
list_display = ('grade_id', 'student', 'course', 'score')
list_filter = ('student', 'course')
search_fields = ('grade_id', 'student__name', 'course__course_name')
ordering = ('grade_id',)
# Register your models here.
admin.site.register(Student, StudentAdmin)
admin.site.register(Teacher, TeacherAdmin)
admin.site.register(Grade, GradeAdmin)
二、simpleui的安装与配置
1、安装simpleUI
pip install django-simpleui
2、配置simpleUI
找到setting.py
INSTALLED_APPS = [
'simpleui',# 加入该项
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
...
]
...
...
...
# 将Django的语言修改为中文
LANGUAGE_CODE = "zh-hans"
...
...
...
setting.py加入
# 隐藏右侧SimpleUI广告链接和使用分析
SIMPLEUI_HOME_INFO = False
SIMPLEUI_ANALYSIS = False
# logo替换
SIMPLEUI_LOGO = 'http://gcore.jsdelivr.net/gh/zhynxq/photo/19.jpg'
# 注意key名为菜单上实际显示的名字,不是模型或App名。
# 配置每一项的图标
# 图标地址:https://fontawesome.com/icons?d=gallery
# 选择class复制添加就可以(注意:不要选择加粗等的图标)
SIMPLEUI_ICON = {
'专业': 'fas fa-th-list',
'学生': 'fa-solid fa-graduation-cap',
'班级': 'fa-solid fa-circle-exclamation',
'成绩': 'fa-solid fa-check',
'学院': 'fa-solid fa-city'
}
3、如何修改后台的标题
在admin.py中添加
admin.site.site_header = '学生管理后台'
admin.site.site_title = '学生管理后台'
admin.site.index_title = '学生管理后台'
评论区