下面我将为您提供关于“Django实现学生管理系统”的详细攻略:
1. 前置条件
在开始实现学生管理系统之前,需要确保您系统中已经安装了以下软件:
- Python 3.x
- Django 2.x
- MySQL(或其他数据库)
如果您还没有安装以上软件,您可以在以下链接中找到安装教程:
2. 创建Django项目
在系统中安装好Python和Django之后,我们就可以开始创建一个新的Django项目。在命令行中输入以下命令:
$ django-admin startproject student_management_system
这个命令会在当前目录下创建一个名为“student_management_system”的Django项目。接下来,进入该项目的根目录:
$ cd student_management_system
3. 创建Django应用
在Django项目中,应用类似于子模块,用于组织和管理项目。我们需要在项目中创建一个名为“student”的应用,命令如下:
$ python manage.py startapp student
这个命令会在项目目录中创建一个名为“student”的Django应用。
4. 配置数据库
在Django中,我们可以使用不同的数据库来存储数据。在这里,我们将使用MySQL作为数据库。在项目根目录下找到“settings.py”文件,找到以下代码块:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
将其修改为以下内容,以使用MySQL数据库:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'your_database_name',
'USER': 'your_username',
'PASSWORD': 'your_password',
'HOST': 'localhost',
'PORT': '3306',
}
}
请将“your_database_name”、“your_username”和“your_password”替换为您自己的数据库名称、用户名和密码。同时,确保MySQL服务器已经启动。
5. 设计数据模型
在学生管理系统中,我们需要存储以下数据:
- 学生信息(学号、姓名、性别、年龄、电话、邮箱等)
- 课程信息(课程编号、课程名称、学分、教师等)
- 选课信息(学生、课程、成绩等)
我们需要设计和定义这些数据模型。在“student”应用的目录下找到“models.py”文件,并编辑它,编写以下代码:
from django.db import models
class Student(models.Model):
student_id = models.CharField(max_length=10, primary_key=True)
name = models.CharField(max_length=20)
gender = models.CharField(max_length=2, choices=(('男', '男'), ('女', '女')))
age = models.IntegerField()
phone = models.CharField(max_length=20, blank=True)
email = models.CharField(max_length=50, blank=True)
class Course(models.Model):
course_id = models.CharField(max_length=10, primary_key=True)
name = models.CharField(max_length=50)
credits = models.IntegerField()
teacher = models.CharField(max_length=20)
class Score(models.Model):
student = models.ForeignKey(Student, on_delete=models.CASCADE)
course = models.ForeignKey(Course, on_delete=models.CASCADE)
score = models.IntegerField()
这个代码块定义了三个数据模型:学生(Student)、课程(Course)和选课(Score)。其中,“Student”和“Course”均定义了一个主键属性,并且使用了其它属性描述了学生和课程的基本信息。而“Score”模型为“Student”和“Course”模型提供了一个多对多的关系,同时包含了学生成绩。
6. 数据库迁移
在修改了数据模型之后,我们需要进行数据库迁移操作,以将新的模型同步到我们的MySQL数据库中。在命令行中输入以下命令:
$ python manage.py makemigrations
$ python manage.py migrate
这两个命令会自动检测并生成新的数据库模块,同时将其同步到MySQL数据库中。这两个命令一般只需要执行一次,除非您对数据模型进行了更改。
7. 创建管理后台
在Django中,我们可以使用“admin”应用轻松创建一个后台管理界面,以便更方便地对学生管理系统进行管理和维护。我们需要在“student”应用中创建一个名为“admin.py”的文件,并编辑它,编写以下代码:
from django.contrib import admin
from .models import Student, Course, Score
admin.site.register(Student)
admin.site.register(Course)
admin.site.register(Score)
这个代码块允许我们在后台管理界面中编辑和管理学生、课程和选课信息。我们还需要为后台管理界面创建一个超级用户(管理员)。在命令行中输入以下命令:
$ python manage.py createsuperuser
按照提示输入用户名、电子邮件和密码,即可创建一个拥有管理员权限的超级用户。
8. 创建网页视图和模板
接下来,我们需要定义网页视图和模板,以呈现学生管理系统的内容。我们需要在“student”应用的目录下找到“views.py”文件,并编辑它,编写以下代码:
from django.shortcuts import render
from .models import Student
def index(request):
students = Student.objects.all()
return render(request, 'student/index.html', {'students': students})
这个代码块定义了一个名为“index”的视图,其作用是查询所有的学生信息,并将其传递给名为“index.html”的模板。
在“student”应用的目录下创建一个名为“templates”的目录,然后在该目录下创建一个名为“student”的子目录。在这个子目录下,创建一个名为“index.html”的文件,编写以下代码:
{% extends 'base.html' %}
{% block content %}
<h2>所有学生信息</h2>
<table>
<thead>
<tr>
<th>学号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>电话</th>
<th>邮箱</th>
</tr>
</thead>
<tbody>
{% for student in students %}
<tr>
<td>{{ student.student_id }}</td>
<td>{{ student.name }}</td>
<td>{{ student.gender }}</td>
<td>{{ student.age }}</td>
<td>{{ student.phone }}</td>
<td>{{ student.email }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
这个代码块定义了一个名为“index.html”的模板,其作用是在网页中呈现所有的学生信息。同时,它还继承了一个名为“base.html”的基础模板,以获得更加统一的网页风格。
9. 配置URL路由
在最后一步中,我们需要指定URL路由,以便用户可以访问学生管理系统的各种功能。我们需要在“student_management_system”项目的目录下找到“urls.py”文件,并编辑它,编写以下代码:
from django.contrib import admin
from django.urls import path
from student.views import index
urlpatterns = [
path('', index),
path('admin/', admin.site.urls),
]
这个代码块定义了两条路由规则:第一条将根目录("student_management_system/")映射到名为“index”的视图中;第二条将后台管理界面("student_management_system/admin/")映射到Django系统默认的后台管理界面中。
示例1:添加学生信息
在Django自带的后台管理界面中,我们可以轻松地添加、编辑和删除学生、课程和选课信息。我们可以在浏览器中访问“http://127.0.0.1:8000/admin/”,登录后即可进入后台管理界面。
在添加学生信息时,我们需要访问“/admin/student/student/add/”界面,输入学生的各项信息,然后单击“保存”按钮。
在添加课程信息时,我们需要访问“/admin/student/course/add/”界面,输入课程的各项信息,然后单击“保存”按钮。
在添加选课信息时,我们需要访问“/admin/student/score/add/”界面,选择一个学生和一门课程,输入成绩,然后单击“保存”按钮。
示例2:查询学生信息
在学生管理系统中,我们可以根据条件查询学生信息。例如,我们可以根据学号查询学生的详细信息。在“index.html”模板中,我们可以添加一个表单元素,以便用户输入学号。在“views.py”文件中,我们可以编写一个新的视图函数,以处理查询请求,并返回查询结果给模板。在“urls.py”文件中,我们可以添加一条路由规则,以映射新的视图函数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django实现学生管理系统 - Python技术站