返回

Django新手打造学生管理系统:轻松实现学生信息管理自动化

后端

使用 Python + Django 开发学生管理系统

简介

学校管理人员肩负着繁重的任务,管理学生信息是其中一项关键职责。学管理系统可以简化这一过程,提高他们的工作效率。本教程将逐步指导您使用 Python 和 Django 构建一个功能齐全的学生管理系统。

创建一个 Django 项目

首先,使用以下命令创建一个新的 Django 项目:

python manage.py startproject student_management_system

定义模型

模型是 Django 中表示数据库表的数据结构。以下是用于表示学生信息的模型:

class Student(models.Model):
    name = models.CharField(max_length=200)
    roll_number = models.IntegerField(unique=True)
    email = models.EmailField()
    phone_number = models.CharField(max_length=15)
    address = models.TextField()

定义视图

视图是处理用户请求和生成响应的函数。以下视图用于处理学生管理操作:

# 列出所有学生
def index(request):
    students = Student.objects.all()
    context = {
        'students': students
    }
    return render(request, 'student_list.html', context)

# 查看单个学生
def detail(request, pk):
    student = Student.objects.get(pk=pk)
    context = {
        'student': student
    }
    return render(request, 'student_detail.html', context)

# 创建新学生
def create(request):
    if request.method == 'POST':
        form = StudentForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('index')
    else:
        form = StudentForm()
    context = {
        'form': form
    }
    return render(request, 'student_create.html', context)

# 更新学生信息
def update(request, pk):
    student = Student.objects.get(pk=pk)
    if request.method == 'POST':
        form = StudentForm(request.POST, instance=student)
        if form.is_valid():
            form.save()
            return redirect('index')
    else:
        form = StudentForm(instance=student)
    context = {
        'form': form
    }
    return render(request, 'student_update.html', context)

# 删除学生
def delete(request, pk):
    student = Student.objects.get(pk=pk)
    student.delete()
    return redirect('index')

配置 URL

URL 配置将 URL 路径映射到视图:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index, name='index'),
    path('student/<int:pk>/', views.detail, name='detail'),
    path('student/create/', views.create, name='create'),
    path('student/<int:pk>/update/', views.update, name='update'),
    path('student/<int:pk>/delete/', views.delete, name='delete'),
]

编写 HTML 模板

HTML 模板用于呈现视图生成的数据:

student_list.html

{% extends "base.html" %}

{% block content %}
    <h1>Student List</h1>
    <ul>
    {% for student in students %}
        <li><a href="{% url 'detail' student.pk %}">{{ student.name }}</a></li>
    {% endfor %}
    </ul>
{% endblock %}

student_detail.html

{% extends "base.html" %}

{% block content %}
    <h1>Student Detail</h1>
    <ul>
        <li>Name: {{ student.name }}</li>
        <li>Roll Number: {{ student.roll_number }}</li>
        <li>Email: {{ student.email }}</li>
        <li>Phone Number: {{ student.phone_number }}</li>
        <li>Address: {{ student.address }}</li>
    </ul>
{% endblock %}

student_create.html

{% extends "base.html" %}

{% block content %}
    <h1>Create New Student</h1>
    <form action="{% url 'create' %}" method="post">
        {% csrf_token %}
        {{ form }}
        <input type="submit" value="Create" />
    </form>
{% endblock %}

student_update.html

{% extends "base.html" %}

{% block content %}
    <h1>Update Student</h1>
    <form action="{% url 'update' student.pk %}" method="post">
        {% csrf_token %}
        {{ form }}
        <input type="submit" value="Update" />
    </form>
{% endblock %}

测试和部署系统

使用以下命令测试您的系统:

python manage.py test

然后,您可以使用以下命令部署您的系统:

python manage.py runserver

常见问题解答

  • 如何向数据库添加新学生?
    您可以通过访问“/student/create/” URL 并填写创建表单来添加新学生。
  • 如何查看单个学生的信息?
    您可以访问“/student//”URL(其中是要查看的学生的ID)以查看单个学生的信息。
  • 如何更新学生信息?
    您可以访问“/student//update/”URL(其中是要更新的学生的ID)以更新学生信息。
  • 如何从数据库中删除学生?
    您可以访问“/student//delete/”URL(其中是要删除的学生的ID)以从数据库中删除学生。
  • 如何使用 Django 框架构建自己的学生管理系统?
    您可以按照本教程中提供的步骤构建自己的学生管理系统。

结论

本教程为您提供了构建功能齐全的学生管理系统所需的知识和代码示例。通过使用 Python 和 Django,您可以简化学校管理人员的学生信息管理任务,并提高他们的工作效率。