Login
网站首页 > 文章中心 > 其它

python◆django◆sql学生信息管理后台开发

作者:小编 更新时间:2023-09-19 17:44:30 浏览量:104人看过

"Python◆Django◆SQL学生信息管理后台开发"是一项非常实用的项目,可以帮助学校、教育机构、学院等管理学生的个人信息和学习成绩.下面是完整攻略及示例说明:

1. 确定项目需求

在开始项目前,首先需要确定项目的需求,明确项目要解决的问题.例如,要开发一个学生信息管理后台,需要实现的功能包括:

学生信息的录入、修改和删除

学生信息的查询功能

学生成绩的录入和查询功能

班级、学院等基础信息的管理功能等

2. 搭建开发环境

此时此刻呢需要搭建Python、Django和MySQL等开发环境.安装好必要的软件后,创建一个Django项目,命名为StudentManage,进入到该项目的目录下.

③ 数据库设计

根据需求设计数据库模型.在MySQL中创建一个名为student_management的数据库,然后创建students、grades和classes三张数据表,分别表示学生信息、成绩和班级信息.具体的表结构如下:

students表结构

grades表结构

classes表结构

④ 编写代码

数据库配置

在StudentManage/StudentManage/settings.py中进行数据库的配置,修改数据库相关信息如下:


DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'student_management',
    'USER': 'root',
    'PASSWORD': '', 
    'HOST': 'localhost',
    'PORT': '3306',
}
}


创建模型

在models.py文件中定义学生信息、成绩和班级三个模型类,代码如下:


from django.db import models

class Class(models.Model):    
name = models.CharField(max_length=30)
major = models.CharField(max_length=50)

class Student(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=30)
gender = models.CharField(max_length=10)
age = models.IntegerField()
email = models.EmailField()
class_id = models.ForeignKey(Class, on_delete=models.CASCADE)

class Grade(models.Model):
id = models.AutoField(primary_key=True)
math = models.IntegerField()
chinese = models.IntegerField()
english = models.IntegerField()
student_id = models.ForeignKey(Student, on_delete=models.CASCADE)


创建视图

在views.py文件中创建添加、修改、查询等视图函数,具体代码如下指南和示例:


from django.shortcuts import render
from django.http import HttpResponse
from .models import Student

def add_student(request):
if request.method == 'POST':
    id = request.POST.get('id')
    name = request.POST.get('name')
    gender = request.POST.get('gender')
    age = request.POST.get('age')
    email = request.POST.get('email')
    class_id = request.POST.get('class_id')
    Student.objects.create(id=id, name=name, gender=gender, age=age, email=email, class_id=class_id)
    return HttpResponse('添加成功')
return render(request, 'add_student.html')



from django.shortcuts import render
from django.http import HttpResponse
from .models import Student

def update_student(request):
if request.method == 'POST':
    id = request.POST.get('id')
    name = request.POST.get('name')
    gender = request.POST.get('gender')
    age = request.POST.get('age')
    email = request.POST.get('email')
    class_id = request.POST.get('class_id')
    Student.objects.filter(id=id).update(name=name, gender=gender, age=age, email=email, class_id=class_id)
    return HttpResponse('修改成功')
return render(request, 'update_student.html')



from django.shortcuts import render
from django.http import HttpResponse
from .models import Student

def search_student(request):
students = []
if request.method == 'POST':
    id = request.POST.get('id')
    name = request.POST.get('name')
    gender = request.POST.get('gender')
    age = request.POST.get('age')
    email = request.POST.get('email')
    class_id = request.POST.get('class_id')
    if id:
        students = Student.objects.filter(id=id)
    elif name:
        students = Student.objects.filter(name=name)
    elif gender:
        students = Student.objects.filter(gender=gender)
    elif age:
        students = Student.objects.filter(age=age)
    elif email:
        students = Student.objects.filter(email=email)
    elif class_id:
        students = Student.objects.filter(class_id=class_id)
return render(request, 'search_student.html', {'students': students})


创建模板

在templates目录下创建HTML模板文件,实现表单提交和数据展示等功能.具体示例代码如下:






添加学生信息


添加学生信息

{% csrf_token %}






修改学生信息


修改学生信息

{% csrf_token %}






查询学生信息


查询学生信息

{% csrf_token %}

{% for student in students %} {% endfor %}
学号 姓名 性别 年龄 邮箱 班级
{{ student.id }} {{ student.name }} {{ student.gender }} {{ student.age }} {{ student.email }} {{ student.class_id }}

⑤ 部署项目

完成代码编写后,需要将代码部署到服务器上,让用户能够访问.具体的部署方式视实际情况而定,可以使用Docker、Nginx、Supervisord等工具进行部署.

以上便是Python◆Django◆SQL学生信息管理后台开发的完整攻略及示例.

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章