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

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

1. 确定项目需求

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

  • 学生信息的录入、修改和删除
  • 学生信息的查询功能
  • 学生成绩的录入和查询功能
  • 班级、学院等基础信息的管理功能等

2. 搭建开发环境

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

3. 数据库设计

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

students表结构

字段名 数据类型 说明
id 整数 学生学号,主键
name 字符串 学生姓名
gender 字符串 学生性别
age 整数 学生年龄
email 字符串 学生电子邮件地址
class_id 整数 学生所在的班级id,外键

grades表结构

字段名 数据类型 说明
id 整数 成绩id,主键
math 整数 数学成绩
chinese 整数 语文成绩
english 整数 英语成绩
student_id 整数 学生学号,外键

classes表结构

字段名 数据类型 说明
id 整数 班级id,主键
name 字符串 班级名称
major 字符串 所属专业

4. 编写代码

数据库配置

在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模板文件,实现表单提交和数据展示等功能。具体示例代码如下:

添加学生信息模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>添加学生信息</title>
</head>
<body>
    <h1>添加学生信息</h1>
    <form action="{% url 'add_student' %}" method="post">
        {% csrf_token %}
        <p><label>学号: </label><input type="text" name="id"></p>
        <p><label>姓名: </label><input type="text" name="name"></p>
        <p><label>性别: </label><input type="radio" name="gender" value="男">男<input type="radio" name="gender" value="女">女</p>
        <p><label>年龄: </label><input type="text" name="age"></p>
        <p><label>邮箱: </label><input type="text" name="email"></p>
        <p><label>班级: </label><input type="text" name="class_id"></p>
        <input type="submit" value="添加">
    </form>
</body>
</html>

修改学生信息模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>修改学生信息</title>
</head>
<body>
    <h1>修改学生信息</h1>
    <form action="{% url 'update_student' %}" method="post">
        {% csrf_token %}
        <p><label>学号: </label><input type="text" name="id"></p>
        <p><label>姓名: </label><input type="text" name="name"></p>
        <p><label>性别: </label><input type="radio" name="gender" value="男">男<input type="radio" name="gender" value="女">女</p>
        <p><label>年龄: </label><input type="text" name="age"></p>
        <p><label>邮箱: </label><input type="text" name="email"></p>
        <p><label>班级: </label><input type="text" name="class_id"></p>
        <input type="submit" value="修改">
    </form>
</body>
</html>

查询学生信息模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>查询学生信息</title>
</head>
<body>
    <h1>查询学生信息</h1>
    <form action="{% url 'search_student' %}" method="post">
        {% csrf_token %}
        <p><label>学号: </label><input type="text" name="id"></p>
        <p><label>姓名: </label><input type="text" name="name"></p>
        <p><label>性别: </label><input type="radio" name="gender" value="男">男<input type="radio" name="gender" value="女">女</p>
        <p><label>年龄: </label><input type="text" name="age"></p>
        <p><label>邮箱: </label><input type="text" name="email"></p>
        <p><label>班级: </label><input type="text" name="class_id"></p>
        <input type="submit" value="查询">
    </form>
    <table border="1">
        <tr>
            <th>学号</th>
            <th>姓名</th>
            <th>性别</th>
            <th>年龄</th>
            <th>邮箱</th>
            <th>班级</th>
        </tr>
        {% for student in students %}
        <tr>
            <td>{{ student.id }}</td>
            <td>{{ student.name }}</td>
            <td>{{ student.gender }}</td>
            <td>{{ student.age }}</td>
            <td>{{ student.email }}</td>
            <td>{{ student.class_id }}</td>
        </tr>
        {% endfor %}
    </table>
</body>
</html>

5. 部署项目

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

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

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python+django+sql学生信息管理后台开发 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • django admin 登陆快速添加验证码功能

    1. 安装包 pip install django-multi-captcha-admin django-simple-captcha   2. setting.py INSTALLED_APPS = [ ‘xxxxxxx’, #系统内置的模块 ‘….’, ‘app01’, ‘multi_captcha_admin’, #1 ‘django.contri…

    Django 2023年4月13日
    00
  • 使用pycharm创建Django项目,’django-admin’ 不是内部或外部命令

      报错信息如下:              (笔者的电脑为win10,python3.7,django 2.2.6 )      第一种情况的解决方案:没有配置环境变量,Django安装之后,需要配置环境变量,命令django-admin.pystartproject projectname才会生效,环境变量的内容就是django-admin.py文件的安…

    Django 2023年4月12日
    00
  • Django基于Models定制Admin后台实现过程解析

    下面我将详细讲解 “Django基于Models定制Admin后台实现过程解析”的完整攻略。在实现过程中,我们将使用两个示例来说明。 1. 简介 Django是一款使用Python语言编写的开源Web框架,其主要目的是快速开发可维护的Web应用程序。Django提供了一组工具和库,使得开发Web应用程序变得简单和高效。其中之一就是Django Admin,它…

    Django 2023年5月16日
    00
  • django实现查询功能

    <div class=”form-group pull-right” style=”float: left”> <form action=”” method=”get”> <input name=”q” type=”text” value=”” class=”form-control” placeholder=”请输入搜索条件”…

    Django 2023年4月11日
    00
  • Django for标签详解

    Django的for标签是一种方便的循环机制,它允许我们在模板中迭代指定的可迭代对象,例如Python中的列表、元组和字典。在循环过程中,我们可以使用for标签定义计数器,以便在模板中进行操作。 下面我们将详细介绍Django for标签的用法,并提供示例代码。 for标签的语法格式如下: {% for item in iterable %} … # 循…

    Django 2023年3月12日
    00
  • 用soaplib的django webserver

    前面写过怎么利用suds来调用webservicePython调用基于https协议的SOAP WebService,这篇讲的是如何用soaplib开发SOAP WebService(最近发现国外开源社区里把json方式的别的Web服务也叫做WebService,叫法跟Java和.Net的约定叫法不太一样,这里加上SOAP以跟json格式的WebServic…

    Django 2023年4月10日
    00
  • Django完整增删改查系统实例代码

    “Django完整增删改查系统实例代码”是一个非常简单易懂的示例教程,通过该教程可以轻松了解基于Django的增删改查系统是如何实现的。下面详细讲解一下该教程的完整攻略和两条示例说明。 一、完整攻略 准备工作:安装Django和MySQL,创建新项目对象。 创建应用:创建一个名为“myapp”的应用,生成并修改模型代码。 进行迁移:使用Django的迁移命令…

    Django 2023年5月16日
    00
  • Python3创建django项目

    1,安装Python环境 2.在cmd命令行,用pip安装Djang。我用的Python3。所以pip3 install django 查看Django环境是否正常,引入包没有报错,说明环境正确: 3.在pycharm里创建Django项目   用命令行创建:     进入想要安置项目的目录,命令行输入:django-admin startproject m…

    2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部